On 17 November 2010 15:27, Jay A. Kreibich <[email protected]> wrote:
> On Wed, Nov 17, 2010 at 10:20:22AM -0500, Chris Wolf scratched on the wall:
>> I am trying to familiarize myself with the lower-level routines for
>> queries, so started with the
>> example here:
>
>
>> not working - error 25, range erorr:
>>
>> ./client test.sqlite "select * from emp where ename = '?'" fred
>
> This is not a place-holder. This is a single-character
> string-literal that consists of a question mark.
>
> Lose the quotes. The quotes are part of the string-literal
> specification, not the value itself. They're not needed for
> place-holders. Consider this statement if you were binding
> a integer, or something other than a text value.
>
> -j
>
Furthermore, in your binding, loop from 0 to argc-3 rather than argc
for(j=0; j<argc-3; j++) {
// for(j=0; j<argc; j++) {
printf("%d: %s\n", j+1, argv[3+j]);
if((rc = sqlite3_bind_text(pStmt, j+1, argv[3+j], -1,SQLITE_TRANSIENT))
!= SQLITE_OK) {
fprintf(stderr, "%d: SQL error: %d - %s\n", __LINE__,
rc,sqlite3_errmsg(db));
exit(1);
}
}
>
> --
> Jay A. Kreibich < J A Y @ K R E I B I.C H >
>
> "Intelligence is like underwear: it is important that you have it,
> but showing it to the wrong people has the tendency to make them
> feel uncomfortable." -- Angela Johnson
Regards,
Simon
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users