Welcome ...        
          
  ... Visiting Newsgroup Users!
 
  See "What makes SQLA different from the newsgroups?" in the FAQ.
 
vote up 2 vote down
star

We use in all procedures customized error codes to give feedback to the client what was wrong.

// Initialized during Database generation
sp_addmessage 20102, 'Some Custom Error Message %1! only as an Example';
.... 
// In Procedures 
raiserror 20102, 'with a Parameter';

We have different users working with the same instance of the Database in different countries in Europe.

My first thought was to have a translation table an query with the error code against this table. But what about the parameters used ?

What is best practice ? Is it possible to avoid a second call to the database ?

Kind Regards Thomas

flag

1 Answer

vote up 2 vote down
check

You can choose the langauge for error messages with the dblang utility or the "SALANG" environment variable. But this setting only applies to "integrated" error messages. For custom errors, created with "create message" or "sp__addmessage" ( i can't find a sp_setmessage procedure even in the newest help for SA12) there is no possibility afaik to store different messages for different languages in SA (as, according to the help file, is available in ASE). We used our own table and function and the connection property "language", which is set through the aforementioned steps.

raiserror 2000009 dba.Lang_getMessages(2000009,connection_Property('language')),Zim(LfZimmer)
link|flag
sp_setmessage is as self written wrapper for sp_addmessage. Sorry for the confusion. Do I understand correctly that you call dba.Lang_getMessages after you received an error as a separate statement? How do you handle Parameter in raiserror ? – TDuemesnil Feb 2 at 11:54
1 
No i dont call it afterwards, the result of the function is the error message for raiserror and you can use parameters as before ( "Zim(LfZimmer)" is another function which returns a string for the parameter "LfZimmer" and it's used in the error message %1!). The example is just one statement, which was wrapped. – Markus Dütting Feb 2 at 13:01

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.