From: Sébastien S. <sa...@us...> - 2009-08-28 14:33:24
|
Hi Zsolt, yes you are right; I missed this file. regards Cserna, Zsolt a écrit : > Sorry if I generate some noise, but for me it was required to change the line 173 in sybasect.c as well: > > Original: > > 171 static PyObject *sybasect_cs_ctx_alloc(PyObject *module, PyObject *args) > 172 { > 173 int version = CS_VERSION_100; > 174 > 175 if (!PyArg_ParseTuple(args, "|i", &version)) > 176 return NULL; > 177 return ctx_alloc(version); > 178 } > > > It was required to gain access to wide tables (eg. tables containing varchar / char fields sized more than 255 chars). > > Zsolt > > >> -----Original Message----- >> From: Sébastien Sablé [mailto:sa...@us...] >> Sent: Thursday, August 27, 2009 18:26 >> To: Jeffrey Zelt >> Cc: pyt...@li... >> Subject: Re: [Python-sybase-misc] 30-character limit for >> identifiers with ASE 15.x? >> >> Hi Jeffrey, >> >> I think this may be the same problem which was recently >> reported in other emails and which is also reported in this >> bug tracker: >> >> http://sourceforge.net/tracker/?func=detail&aid=2809032&group_ > id=184050&atid=907701 >> >> python-sybase is currently specifying at initialization to >> Sybase that it wants sybase 10.0 capabilities. >> >> You need to modify python-sybase in this way if you want to >> use capabilities of Sybase 15 : >> >> Index: ctx.c >> =================================================================== >> --- ctx.c (révision 443) >> +++ ctx.c (copie de travail) >> @@ -1083,7 +1083,7 @@ >> return NULL; >> } >> >> - version = CS_VERSION_100; >> + version = CS_VERSION_150; >> if (!PyArg_ParseTuple(args, "|i", &version)) >> return NULL; >> >> >> It should be easy to write a small patch so that the maximum >> available version of CS_VERSION_* is detected at compilation >> time, so that python-sybase always use the capability of the >> version of Sybase it is compiled with. I will add that for >> python-sybase 0.40. >> >> regards >> >> -- >> Sébastien Sablé >> >> Jeffrey Zelt a écrit : >>> I have a problem where a Sybase.DatabaseError exception is >> thrown by >>> the python-sybase module when I execute a Sybase ASE 15.0.3 stored >>> procedure that contains a local variable with a name longer >> than 30-characters. >>> >>> >>> Here is exact error text: >>> >>> >>> >>> Traceback (most recent call last): >>> >>> File >>> >> "/home/jeffreyz/workspace-3.5/generate-client-test-data/src/generate_d >>> ata_run.py", >>> line 11, in <module> >>> >>> '--logging-stderr-on', '--logging-stderr-level', >>> str(logging.DEBUG), >>> >>> File >>> >> "/home/jeffreyz/workspace-3.5/generate-client-test-data/src/generate_d >>> ata.py", >>> line 415, in main >>> >>> generate_client(cursor, options) >>> >>> File >>> >> "/home/jeffreyz/workspace-3.5/generate-client-test-data/src/generate_d >>> ata.py", >>> line 271, in generate_client >>> >>> '@op_AccountNumber': Sybase.OUTPUT(1)}) >>> >>> File "build/bdist.linux-i686/egg/Sybase.py", line 418, in callproc >>> >>> File "build/bdist.linux-i686/egg/Sybase.py", line 695, in _start >>> >>> File "build/bdist.linux-i686/egg/Sybase.py", line 709, in >> _mainloop >>> File "build/bdist.linux-i686/egg/Sybase.py", line 753, in >>> _raise_error >>> >>> Sybase.DatabaseError: Msg 103, Level 15, State 205, Line 13 >>> >>> The identifier that starts with '@tmp_HasFixedInitialCreditLimi' is >>> too long. Maximum length is 30. >>> >>> Msg 103, Level 15, State 205, Line 14 >>> >>> The identifier that starts with '@tmp_HasFixedClearingCreditLim' is >>> too long. Maximum length is 30. >>> >>> Msg 137, Level 15, State 1, Line 14 >>> >>> Must declare variable '@tmp_HasFixedClearingCreditLimi'. >>> >>> >>> >>> Notice that it is complaining that the name of the local variable >>> '@tmp_HasFixedClearingCreditLimit' is too long. >>> >>> >>> >>> This was a known problem with ASE 12.x. However, I compiled the >>> python-sybase module on Ubuntu 9.04 against: >>> >>> >>> >>> Linux Express Edition for ASE 15.0.3 >>> >>> >>> >>> I have never installed a version of ASE 12.x, so I could not have >>> accidentally compiled against old libraries. The server on >> which the >>> stack trace above was created was running ASE 15.0.3 on >> Fedora Linux. >>> >>> >>> Does anyone know why I triggered an exception for identifiers over >>> 30-characters when all libraries involved seem to be for >> Sybase ASE 15.x? >>> >>> >>> Is there a way to fix this problem so that no exception is thrown? >>> >>> >>> >>> Regards, >>> >>> Jeffrey >>> >>> >>> >>> >>> >> ---------------------------------------------------------------------- >>> -- >>> >>> >> ---------------------------------------------------------------------- >>> -------- Let Crystal Reports handle the reporting - Free Crystal >>> Reports 2008 30-Day trial. Simplify your report design, integration >>> and deployment - and focus on what you do best, core application >>> coding. Discover what's new with Crystal Reports now. >>> http://p.sf.net/sfu/bobj-july >>> >>> >>> >> ---------------------------------------------------------------------- >>> -- >>> >>> _______________________________________________ >>> Python-sybase-misc mailing list >>> Pyt...@li... >>> https://lists.sourceforge.net/lists/listinfo/python-sybase-misc >> >> -------------------------------------------------------------- >> ---------------- >> Let Crystal Reports handle the reporting - Free Crystal >> Reports 2008 30-Day trial. Simplify your report design, >> integration and deployment - and focus on what you do best, >> core application coding. Discover what's new with Crystal >> Reports now. http://p.sf.net/sfu/bobj-july >> _______________________________________________ >> Python-sybase-misc mailing list >> Pyt...@li... >> https://lists.sourceforge.net/lists/listinfo/python-sybase-misc >> > -------------------------------------------------------------------------- > NOTICE: If received in error, please destroy, and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error. We may monitor and store emails to the extent permitted by applicable law. |