Hey folks, I'm fresh off the boat with sqlite, but I'm an old-timer C 
programmer on Unix.  I have to work on a window's 7 x64 for this project, and I 
also for the first time have to use SQL and I want to use SQL using C, gcc, and 
SQLITE.   So I went to the website and downloaded:

 Directory of C:\jon\txt\sceptre\SQLite Download Page_files

140703  03:40 PM           698,103 sqlite-analyzer-win32-x86-3080500.zip
140703  03:40 PM           533,745 sqlite-dll-win64-x64-3080500.zip
140709  11:18 AM         4,446,454 sqlite-doc-3080500.zip
140703  03:41 PM           301,951 sqlite-shell-win32-x86-3080500.zip
140703  03:41 PM             5,452 sqlite370_banner.gif
               5 File(s)      5,985,705 bytes
               0 Dir(s)  27,665,055,744 bytes free


these files, 

and ended up making a directory C:\sqlite on my c drive like so:

 Directory of C:\sqlite

140710  02:43 PM    <DIR>          .
140710  02:43 PM    <DIR>          ..
140710  02:43 PM            91,786 a.exe
140710  02:39 PM           162,722 libsqlite3.a
140710  02:38 PM                56 session.txt
140604  09:21 PM           124,070 shell.c
140710  02:01 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
140710  02:42 PM               885 test.c
              12 File(s)      7,796,558 bytes
               4 Dir(s)  27,661,144,064 bytes free


following the instructions here: 
http://www.tutorialspoint.com/sqlite/sqlite_installation.htm

 
and then the sample project here: 
http://www.tutorialspoint.com/sqlite/sqlite_c_cpp.htm

 
well I had all kinds of trouble getting through the linker, spend hours 
searching the web and finally found the command:

dlltool -D sqlite3.dll -d sqlite3.def -l libsqlite3.a


which seemed to make the library I needed which seems to be some big secret. 

anyway here is the test.c program I tried to run: 




//bof
#include <stdio.h>
#include "sqlite3.h" 

/************************************************************\
Now, let's compile and run above program to create our database 
test.db in the current directory. You can change your path as 
per your requirement.

$gcc test.c -l sqlite3
$./a.out
Opened database successfully



doskey
\jon\bat\local
dlltool -D sqlite3.dll -d sqlite3.def -l libsqlite3.a
gcc test.c -L/sqlite -l sqlite3
doskey/history

\************************************************************/


int main(int argc, char* argv[])
{
   sqlite3 *db;
   char *zErrMsg = 0;
   int rc;

   rc = sqlite3_open("test.db", &db);

   if( rc ){
      fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
      return (0);
   }else{
      fprintf(stderr, "Opened database successfully\n");
   }
   sqlite3_close(db);
} //main
//eof


Now, when I run a.exe, it crashes with an "application was unable to start 
correctly (0xc000007b)" error. 

question 1) what am I doing wrong?

so I keep searching the web and I find:

http://www.sqlite.org/quickstart.html

 
and they show this really nice program:
01  #include <stdio.h>
02  #include <sqlite3.h>
03  
04  static int callback(void *NotUsed, int argc, char **argv, char **azColName){
05    int i;
06    for(i=0; i<argc; i++){
07      printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
08    }
09    printf("\n");
10    return 0;
11  }
12  
13  int main(int argc, char **argv){
14 sqlite3 *db;
15    char *zErrMsg = 0;
16    int rc;
17  
18    if( argc!=3 ){
19      fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
20      return(1);
21    }
22    rc = sqlite3_open(argv[1], &db);
23    if( rc ){
24      fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
25 sqlite3_close(db);
26      return(1);
27    }
28    rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
29    if( rc!=SQLITE_OK ){
30      fprintf(stderr, "SQL error: %s\n", zErrMsg);
31 sqlite3_free(zErrMsg);
32    }
33 sqlite3_close(db);
34    return 0;
35  }

but don't follow through with how to compile and link it.

I tried:
C:\sqlite>gcc test02.c -otest02.exe -L/sqlite -l sqlite3
test02.c:2:23: fatal error: sqlite3.h: No such file or directory #include 
<sqlite3.h> ^
compilation terminated. C:\sqlite>winelvis test02.c C:\sqlite>gcc test02.c 
-otest02.exe -L/sqlite -l sqlite3 C:\sqlite>test02 C:\sqlite>


but it crashed just like a.exe. 
question 2) any help on getting this program to run?

TIA, 

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

Reply via email to