My final solution: so what I did was forget the dll and statically linked
sqlite into my test program hw.c. Here is the source and in the comments at
the top is the build/run session from the command line session. - Jon
//bof
#include <stdio.h>
#include "sqlite3.h"
/****************************************************************\
C:\sqlite>hw.exe
hello Kevin!
Usage: hw.exe DATABASE SQL-STATEMENT
C:\sqlite>sqlite3.exe
SQLite version 3.8.5 2014-06-04 14:06:34
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> create table tbl1(one varchar(10), two smallint);
sqlite> insert into tbl1 values('hello!',10);
sqlite> insert into tbl1 values('goodbye',20);
sqlite> select * from tbl1;
hello!|10
goodbye|20
sqlite> .seperator ", "
Error: unknown command or invalid arguments: "seperator". Enter ".help" for
help
sqlite> .separator ", "
sqlite> select * from tbl1;
hello!, 10
goodbye, 20
sqlite> .save tbl1_test
sqlite> .quit
C:\sqlite>dir
Volume in drive C has no label.
Volume Serial Number is F0C1-CFFE
Directory of C:\sqlite
140711 09:49 AM <DIR> .
140711 09:49 AM <DIR> ..
140710 05:39 PM 91,961 a.exe
140711 07:55 AM 1,179 hw.c
140711 07:55 AM 821,663 hw.exe
140710 05:41 PM 67,070 hw_cgw.exe
140710 05:41 PM 163,578 libsqlite3.a
140710 02:38 PM 56 session.txt
140604 09:21 PM 124,070 shell.c
140710 05:45 PM <DIR> sqlite-amalgamation-3080500
140710 01:40 PM <DIR> sqlite-doc-3080500
140604 09:21 PM 5,239,373 sqlite3.c
140630 12:19 PM 4,721 sqlite3.def
140630 12:19 PM 1,238,016 sqlite3.dll
140604 09:22 PM 547,840 sqlite3.exe
140604 09:21 PM 360,297 sqlite3.h
140604 09:21 PM 26,110 sqlite3ext.h
140710 02:40 PM 682 t.lis
140711 09:49 AM 2,048 tbl1_test
140710 02:42 PM 885 test.c
140710 05:08 PM 0 test.db
140710 04:16 PM 904 test02.c
140710 04:24 PM 1,051 test02.obj
140710 04:29 PM 883 test_a.c
140710 04:41 PM 67,061 test_a.exe
21 File(s) 8,759,448 bytes
4 Dir(s) 27,407,122,432 bytes free
C:\sqlite>ren tbl1_test tbl1_test.db
C:\sqlite>sqlite3.exe tbl1_test.db
SQLite version 3.8.5 2014-06-04 14:06:34
Enter ".help" for usage hints.
sqlite> select * from tbl1
...> ;
hello!|10
goodbye|20
sqlite> .quit
C:\sqlite>hw.exe
hello Kevin!
Usage: hw.exe DATABASE SQL-STATEMENT
C:\sqlite>hw.exe "select * from tbl1;"
hello Kevin!
Usage: hw.exe DATABASE SQL-STATEMENT
rem code updated and re-compiled ...
C:\sqlite>
C:\sqlite> rem ok lets forget the DLL and statically link the file
C:\sqlite>gcc hw.c sqlite3.c -ohw.exe
C:\sqlite>hw.exe tbl1_test.db "select * from tbl1;"
hello Kevin!
hello kevin2!
hello kevin3!
one = hello!
two = 10
one = goodbye
two = 20
C:\sqlite>
\****************************************************************/
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++){
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int main(int argc, char **argv){
sqlite3 *db;
char *zErrMsg = 0;
int rc;
printf("hello Kevin!\n");
if( argc!=3 ){
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
return(1);
}
printf("hello kevin2!\n");
rc = sqlite3_open(argv[1], &db);
printf("hello kevin3!\n");
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return(1);
}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sqlite3_close(db);
return 0;
} //main
//eof
On Friday, July 11, 2014 9:15 AM, Jonathan Leslie <[email protected]> wrote:
>
>
>Jan, thank you for your great advise. - Jon
>
>
>
>
>
>On Friday, July 11, 2014 8:50 AM, Jan Nijtmans <[email protected]> wrote:
>
>
>>
>>
>>2014-07-11 13:45 GMT+02:00 Jonathan Leslie <[email protected]>:
>>> Jan,
>>>
>>> Yes, thank you I see. the download of the x64 mingw is failing behind my
>>> proxy here. the
>>> installer wants to phone home for some repository tool. is there anyway
>>> around that?
>>
>>Yes, there is a way around that. Yesterday, you wrote:
>>2014-07-10 22:36 GMT+02:00 Jonathan Leslie <[email protected]>:
>>> Update: ok this is working in cygwin, so maybe my GCC compiler on the
>>> windows side cmd.exe side is all higgly piggly?
>>
>>If you have Cygwin already, just install Cygwin's
>>"mingw64-x86_64-gcc-core" package.
>>In stead of "gcc" you
need to use "x86_64-w64-mingw32-gcc" (and the
>>same for various
>>other tools like "dlltool" and "ld"). This way, you create a fully
>>functional 64-bit environment
>>which works with the 64-bit SQLite dll (and runs outside of Cygwin as well).
>>
>>> OR....
>>>
>>> can I use the 32-bit sqlite?
>>
>>That's another possibility.
>>
>>
>>Regards,
>> Jan Nijtmans
>>_______________________________________________
>>sqlite-users mailing list
>>[email protected]
>>http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>
>>
>>
>
>
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users