Re: Problem with FreeTDS validating SQL commands

"James K. Lowden" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
Stephane Magne wrote:
> 
> Please correct me if I'm wrong, but it's my understanding that  
> ct_command() ... will also  
> determine if it is valid SQL syntax or if the Stored Procedure call  
> is valid.

I don't think you can depend on that.  I just re-read Sybase's description
of ct_command.  It doesn't imply any interaction with the server, and it
explicitly says the command text need not even by SQL:

 "A language command can be in any language, as long as the server to 
which it is directed can understand it. Adpative Server understands 
Transact-SQL, but an Open Server application constructed with Server- 
Library can be written to understand any language." 

FreeTDS never parses SQL.  If you refer to a nonexistent procedure or
table, you'll hear about it soon enough from the server.  

The ct-lib reference manual gives no reasons for ct_command to return
CS_FAIL, and I don't know of a canonical list of library error messages.  

That's the documentation story.  The implentation and emulation
perspective might be more complicated.  Do you get any more feedback from
Sybase's library besides CS_FAIL?  

> In contrast, the SybaseOpenClient framework will return the CS_FAIL  
> result if the SQL isn't properly formatted.  However, the source  
> isn't readily available to us so we can't compare the two.

I'm not aware the source is available at all, readily or not.  ;-)

What you could do, if you want to investigate further, is use tdsdump(8)
to capture the server interaction, if any, that results from a ct_command
call.  If there's something there, we could take advantage of it.  If
there is none, then I have to say the documented and observed behavior
agree: you can put whatever language text you please into your command
buffer.  It's not an error insofar as the library is concerned.  

HTH.  

--jkl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.