Pro*C / Sqlca Structure / Oracle v7 -> v8 / Problem

From: EFT.Johann Dupuis <jdupuis_at_eft.be>
Date: 1 Apr 1999 17:29:37 GMT
Message-ID: <D4DE20405ECBD011B2AC0060974BC6EA08860C_at_dbserver.plasky.eft.be.0.168.192.in-addr.arpa>


I have developed some programs using Pro*C for Oracle v7.x (using Pro*C 2.2) in 32Bits.

Now, I need to migrate Oracle v7 application on Oracle v8.

I have just recompile (with Borland C++ 5.1) the application with new libraries (sqxlib80.lib/sqllib80.lib) and new headers (included in Pro80).
As the oracle documentation explains, it raises no problem if no specific functionnalities of Oracle v8 are used.

But, I have a strange problem with sqlca structure. To get information on some sql errors which sometimes occur, I use the sqlca.sqlerrm.sqlerrmc char string.
There is no problem with oracle v7, for example I get:'ORA-00980: synonym translation is no longer valid'. But in oracle v8 the following used instruction: memcpy(message,(const void *)sqlca.sqlerrm.sqlerrmc,50);
  give an illogical result, message variable is filled by '\0' character, as memcpy was memset(message,0,50) ! In the same way, the printf("%s",(const void *)sqlca.sqlerrm.sqlerrmc);   display nothing!
In other words, even if sqlca structure contain the right value (I can see that with inspector of borland C++), I am unable to get or display the value.

To sum up, it seems that use pro80 libraries and headers generate an incoherant code, at least about sqlca data structure. Moreover, it appears that using Pro80 instead Pro22 is not solving the problem.

Thanks in advance for information.

Johann DUPUIS
jdupuis_at_eft.be Received on Thu Apr 01 1999 - 19:29:37 CEST

Original text of this message