Re: SQL_SUCCESS_WITH[out]_INFO in ODBC lib

"ZIGLIO, Frediano, VF-IT" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
> 
> Nathan Bird wrote:
> > Reading data in chunks with SQLGetData if the buffer is not 
> long enough 
> > for the value to copy, it should fill the buffer, and return 
> > SQL_SUCCESS_WITH_INFO, along with setting the 
> StrLen_or_IndPtr to point 
> > at the how much data is available. At least according to  
> > http://msdn2.microsoft.com/en-us/library//ms715441.aspx [1] 
> the info 
> > should be "01004" to indicate the string is right 
> truncated-- this isn't
> > 
> > being set right now.
> 
> The attached patch implements the change you suggest, along with a few
> cosmetic changes.  
> 
> I committed the change to to CVS HEAD.  I'll apply it to 0.82 
> before it's
> released unless Frediano sees a problem.  
> 
> (My compliments, if I may, on a fine problem report.  Thanks.)  
> 
> > I ran into a problem recently where trying to read data 
> through the ODBC
> > 
> > lib gave me a number of problems, updating to 0.82RC4 fixed most of 
> > them....
> 
> Very good to hear, too.  
> 
> > From my searching this was the most definitive source for ODBC spec 
> > I could find
> 
> That's what I use.  I figure ODBC for SQL Server is whatever Microsoft
> says it is, standard or no.  
> 

I think tha patch could be splitted in:
1- current_results instead of resinfo
2- some style/typo fixes
3- fixes for problem in ML

3 is just

-			/* not all readed ?? */
-			if (colinfo->column_text_sqlgetdatapos <
colinfo->column_cur_size)
-				/* TODO add diagnostic */
+			
+			if (colinfo->column_text_sqlgetdatapos <
colinfo->column_cur_size) {	/* not all read ?? */
+				odbc_errs_add(&stmt->errs, "1004",
"String data, right truncated");
 				ODBC_RETURN(stmt,
SQL_SUCCESS_WITH_INFO);
+			}

IMO is correct!
2 is ok, even odbc refer as remaining bytes.
I would merge part 3 in 0.82 and 2 and 3 in CVS HEAD.

bye
  freddy77
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.