|
|
Choosing A Webhost: |
ODBC SQLExecute succeeds when it shouldn't: msg#00260db.tds.freetds
I'm using a nightly snapshot of FreeTDS (20031125) with unixODBC and the Ruby ODBC bindings. It was working well... actually, a little TOO well. Queries that should raise errors weren't, for instance: require 'odbc' d = ODBC::connect('sedev', "sedev", "") # Should raise an error, but doesn't d.do("INSERT INTO urls ( recdate ) VALUES ( ? )", "2003-10-1 10:11:1 0") # Properly raises an error d.do("INSERT INTO urls ( recdate ) VALUES ( '2003-10-1 10:11:1 0' )") (I've attached the interesting bits of the TDSDUMP log generated by this conversation) After much looking at Ruby/ODBC trace statements and TDSDUMP logs, I made the following small patch: <patch> --- odbc.c Sat Nov 22 11:22:25 2003 +++ cl-freetds-0.62-dev20031125/src/odbc/odbc.c Tue Nov 25 18:42:58 2003 @@ -2385,6 +2385,8 @@ /* TODO test flags ? check error and change result ? */ case TDS_DONEINPROC_RESULT: + if(done_flags & TDS_DONE_ERROR) + result = SQL_ERROR; if (in_row) done = 1; break; </patch> See that TODO there? I was hitting an error that showed up in DONEINPROC, and thus _SQLExecute was returning a SQL_SUCCESS_WITH_INFO instead of a SQL_ERROR. With the patch, both of the queries above fail correctly. Note that I haven't removed the TODO line. That's because I have no earthly idea whether this is a good fix for the problem, or whether the cure is worse than the disease. My patch is so simplistic, I'm guessing there must be more that needs to be done here. If there are dangers with the code above, or a better solution, please, let me know. Thanks, Nathaniel <:((><
FreeTDS mailing list FreeTDS@xxxxxxxxxxxxxxxxx http://lists.ibiblio.org/mailman/listinfo/freetds
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Fw: freetds-dev on Solaris, Jeremy Kister |
|---|---|
| Next by Date: | login issue, Popeanga Marian |
| Previous by Thread: | freetds-dev on Solaris, Jeremy Kister |
| Next by Thread: | Re: ODBC SQLExecute succeeds when it shouldn't, James K. Lowden |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
Free MagazinesCisco NewsReceive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business. subscribe Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field. subscribe The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business. subscribe Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company. subscribe Total Telecom Total Telecom is "The Economist of the communications industry". subscribe |