Okay.  I worked out a solution, but I am still unsure of why it fixes the 
problem.  Or rather, I know why it works, but it still doesn't explain why the 
basic_string::c_str() call did not work.  My only guess is that 
basic_string::c_str() doesn't really provide a pointer to a null-terminated 
c-style string, but a facsimile of one that SQLite doesn't like.


Here's that statement from my code again with the mods included that make the 
code work:

      char *surbuf[100];
      memset(surbuf, 0, 100);
      strcpy(surbuf, CurrentName -> second.GetSurName().c_str());
      idx = -1;
      idx = sqlite3_bind_parameter_index(ResultStmt, ":sur");
      sqlite3_bind_text(ResultStmt, idx,  surbuf, strlen(surbuf), 
SQLITE_STATIC);


BTW, I was using the .output command in the SQLITE3 shell to attempt piping my 
output to a file.  The command looked like this:

.output c:\sqlite.txt

Select * from Names;

When I went to the root of C: I did not find the file. So I removed the path 
from the filename and later found it in the SQLLite directory from which I was 
running the shell.  

R,
John

> -----Original Message-----
> From: sqlite-users-boun...@sqlite.org [mailto:sqlite-users-boun...@sqlite.org]
> On Behalf Of Pavel Ivanov
> Sent: Friday, December 17, 2010 4:44 PM
> To: General Discussion of SQLite Database
> Subject: Re: [sqlite] Troubleshooting...
> 
> > So you can see that when I add the hard-coded data, everything looks fine 
> > in the
> results of the select statement, which leads me to believe that the problem 
> is not
> confusion between UTF8 and UTF16 output.
> 
> Your hardcoded data has only characters from ASCII set which don't
> differ from the same in UTF-8. Besides SQLite API and command line
> utility don't check your strings to be valid UTF-8. SQLite API puts
> into database whatever you give to it, command line utility throws to
> stdout whatever it finds in the database (so my guess could be wrong
> and your input strings could be not in UTF-8 but in some other
> encoding). It's totally developer's responsibility to make sure that
> encoding put into database is the same as is expected when it's
> retrieved from database.
> 
> > I could not figure out how to pipe my info to a file
> 
> One of possible solutions is to use .output command in the sqlite3
> utility (you can use .help command to see everything that is available
> to you there) or to provide your sql statement as last argument when
> you start sqlite3 utility and use standard redirection like this:
> 
> sqlite3 database.db "select * from mytable" >output.txt
> 

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to