LordTerra Geschrieben 11. September 2007 Teilen Geschrieben 11. September 2007 hi erstmal wie mein system aufgebaut is: also ich hab nen rechner auf dem die sqlite.db liegt und ich hab nen linux welches über netzwerk auf den ordner zugreifen soll und mit der sqlite.db arbeiten soll ... daten auslesen daten reinschreiben usw... nun die db läuft soweit und mit java kann ich auch drauf zugreifen und alles mögliche mit machen ... nu brauch ich für mein linux nen programm unter c was halöt auch auf die db übers netz zugreifen kann und mit der db arbeiten kann... ich habe unter SQLite home page auch das beispiel versucht bekomm es aber leider nicht richtig zum laufen... (seis weil meine c kenntnisse zu mangelhaft sind oder weil da irgendwas net stimmt) also ich hab folgendes problem: beim linker bekomm ich jedesmal die fehlermeldung: **** Build of configuration Debug for project SQLite2 **** make all Building file: ../src/SQLite2.c Invoking: GCC C Compiler gcc -I"/home/lordterra/platte2/workspace/SQLite2/src" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/SQLite2.d" -MT"src/SQLite2.d" -o"src/SQLite2.o" "../src/SQLite2.c" ../src/SQLite2.c: In function `main': ../src/SQLite2.c:20: warning: implicit declaration of function `exit' Finished building: ../src/SQLite2.c Building target: SQLite2 Invoking: GCC C Linker gcc -L"/home/lordterra/platte2/workspace/SQLite2/src" -o"SQLite2" ./src/SQLite2.o ./src/SQLite2.o(.text+0xe3): In function `main': ../src/SQLite2.c:22: undefined reference to `sqlite3_open' ./src/SQLite2.o(.text+0xfd):../src/SQLite2.c:24: undefined reference to `sqlite3_errmsg' ./src/SQLite2.o(.text+0x11f):../src/SQLite2.c:25: undefined reference to `sqlite3_close' ./src/SQLite2.o(.text+0x14a):../src/SQLite2.c:28: undefined reference to `sqlite3_exec' ./src/SQLite2.o(.text+0x17a):../src/SQLite2.c:31: undefined reference to `sqlite3_free' ./src/SQLite2.o(.text+0x188):../src/SQLite2.c:33: undefined reference to `sqlite3_close' collect2: ld returned 1 exit status make: *** [SQLite2] Fehler 1 also ich geh ma davon aus das mir die lib noch fehlt (benutzte also umgebund cdt eclipse) ... ich hab mir von sqlite.org auch die bin für linux runter geladen , aber entweder hab ich sie falsch eingebunden oder es is die falsche datei... also ka aber irgendwie bringt die nix ... achja noch der code: #include <stdio.h> #include <sqlite3.h> 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; if( argc!=3 ){ fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]); exit(1); } rc = sqlite3_open("\\\10.0.88.104\daten\test.db", &db); if( rc ){ fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); exit(1); } rc = sqlite3_exec(db, "select * from user;", callback, 0, &zErrMsg); if( rc!=SQLITE_OK ){ fprintf(stderr, "SQL error: %s\n", zErrMsg); sqlite3_free(zErrMsg); } sqlite3_close(db); return 0; } also wenn mir wer helfen kann wäre nett mfg LordTerra Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 11. September 2007 Teilen Geschrieben 11. September 2007 also ich geh ma davon aus das mir die lib noch fehltJa, so sieht das aus. ich hab mir von sqlite.org auch die bin für linux runter geladenDie Datei mit der .bin-Erweiterung ist ein Programm, keine Bibliothek. Du brauchst die .so-Datei. Außerdem brauchst du anscheinend noch die pthread- und dl-Bibliothek. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordTerra Geschrieben 11. September 2007 Autor Teilen Geschrieben 11. September 2007 jo die .so hab ich jetzt eingebunden und du hast recht jetzt meckert er mir irgendwas mit pthread an **** Build of configuration Debug for project SQLite2 **** make all Building target: SQLite2 Invoking: GCC C Linker gcc -o"SQLite2" ./src/SQLite2.o /home/lordterra/platte2/workspace/SQLite2/src/sqlite-3.4.2.so make: Warning: File `/home/lordterra/platte2/workspace/SQLite2/src/sqlite-3.4.2.so' has modification time 4,1e+03 s in the future /home/lordterra/platte2/workspace/SQLite2/src/sqlite-3.4.2.so: undefined reference to `pthread_create' /home/lordterra/platte2/workspace/SQLite2/src/sqlite-3.4.2.so: undefined reference to `pthread_getspecific' /home/lordterra/platte2/workspace/SQLite2/src/sqlite-3.4.2.so: undefined reference to `dlclose' /home/lordterra/platte2/workspace/SQLite2/src/sqlite-3.4.2.so: undefined reference to `pthread_key_create' /home/lordterra/platte2/workspace/SQLite2/src/sqlite-3.4.2.so: undefined reference to `dlopen' /home/lordterra/platte2/workspace/SQLite2/src/sqlite-3.4.2.so: undefined reference to `dlsym' /home/lordterra/platte2/workspace/SQLite2/src/sqlite-3.4.2.so: undefined reference to `pthread_join' /home/lordterra/platte2/workspace/SQLite2/src/sqlite-3.4.2.so: undefined reference to `pthread_setspecific' collect2: ld returned 1 exit status make: *** [SQLite2] Fehler 1 wo bekomm ich die dateien? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 11. September 2007 Teilen Geschrieben 11. September 2007 Die solltest du schon haben. Ich kann mir nicht vorstellen, dass Linux ohne diese Bibliotheken lauffähig wäre. Du musst nur dem Compiler (eigentlich dem Linker) -lpthread und -ldl mit angeben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordTerra Geschrieben 11. September 2007 Autor Teilen Geschrieben 11. September 2007 ok das programm führt er jetzt aus... 1 frage noch: wie kann ich nun auf die daten aus meinem select zugreifen? weil in rc steht ja nix drin ausser die errorflags... wo hat er denn nu das result untergebracht? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 11. September 2007 Teilen Geschrieben 11. September 2007 wo hat er denn nu das result untergebracht?Die Ergebnisse schlagen in der Callbackfunktion auf. Steht in der Doku zu sqlite3_exec. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordTerra Geschrieben 11. September 2007 Autor Teilen Geschrieben 11. September 2007 hmmm die callback benutzt die argv und argc .... das sind ja variablen die auf den konsolenbefehl zurück gehn ... aber da ich bei meinem consolenbefehl keine angaben mach steht da ja nix... also wie muss dann die callback funktion aussehn? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 11. September 2007 Teilen Geschrieben 11. September 2007 hmmm die callback benutzt die argv und argc .... das sind ja variablen die auf den konsolenbefehl zurück gehn Nein, die Parameter von callback haben mit denen von main nichts zu tun. Die heißen nur gleich. also wie muss dann die callback funktion aussehn?Das kommt darauf an, was du mit den Ergebnissen deiner Abfrage machen willst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordTerra Geschrieben 11. September 2007 Autor Teilen Geschrieben 11. September 2007 aha... naja ich würd sie fürs erste erstmal gern anzeigen... aber im mom hab ich glaube noch n anderes problem: der sagt mir das er keine tabelle user in meiner avs.DB findet ... die is aber 100 % da wat is n das? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 11. September 2007 Teilen Geschrieben 11. September 2007 der sagt mir das er keine tabelle user in meiner avs.DB findet ... die is aber 100 % daEntweder das Programm irrt sich, oder du. Wie hast du die Datenbank denn angelegt, und die Tabelle erstellt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordTerra Geschrieben 11. September 2007 Autor Teilen Geschrieben 11. September 2007 Also ich habe die Tabelle über das Programm sqlitebrowser-1.3-win erstellt, also was ich mir noch vorstellen kann: das Linux-Programm kann mit der unter Windows erstellten DB nichts anfangen. Da ich aber ein SQLite-Programm benutzt hab glaub ich das eigentlich nicht. Bin mir da aber nicht sicher. Vor allem weil sich an der DB ja nichts ändern soll. Die DB soll ja säpter auf einem Windows Server liegen und ich möchte per Netzwerk auf die Datei zugreifen und benutzen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 11. September 2007 Teilen Geschrieben 11. September 2007 Was sagt denn das Kommandozeilentool (die bin-Datei, die du vorher runtergeladen hattest) zu deiner Datenbank? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordTerra Geschrieben 11. September 2007 Autor Teilen Geschrieben 11. September 2007 Keine Ahnung. Wie soll ich das benutzen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 11. September 2007 Teilen Geschrieben 11. September 2007 Keine Ahnung. Wie soll ich das benutzen? Das sagt es dir, wenn du es einfach mal ausführst. Alternativ kannst du natürlich auch in die Dokumentation schauen. Ich kann mir nicht vorstellen, dass du in 3 Minuten all diese Möglichkeiten ausgeschöpft hast und zu keinem Ergebnis gekommen bist Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordTerra Geschrieben 11. September 2007 Autor Teilen Geschrieben 11. September 2007 Ja mein Fehler hatte ./ vor der Datei vergessen. Dadurch hat er sie nicht ausgeführt. Also wenn ich die Datei avs.DB mit .read auslese zeigt er mir einen Teil der eigentlichen DB aber nur einen Teil. um genauer zu sein: sqlite> .read avs.DB rbeitenete SQL: SQLite format 3� 84,chenhtest_2enablefalse:!AVS_Test_1a303a _rechteCREATE TABLE gruppe_rechte (id INTEGER PRIMARY KEY, grp_id NUMERIC, recht TEXT, berechtigung NUMERIC)�##�Qtablegruppe_usergruppe_userCREATE TABLE gruppe_user (id INTEGER PRIMARY KEY, grp_id NUMERIC, user_id NUMERIC, user_name TEXT)�MqtableobjectsobjectsCREATE TABLE objects (id INTEGER PRIMARY KEY, config TEXT, name TEXT, objects_standart_id NUMERIC, pos_x NUMERIC, pos_y NUMERIC, size_x NUMERIC, size_y NUMERIC, bordercolor TEXT)�N 77�;tableobjects_eigenschaftenobjects_eigenschaftenCREATE TABLE objects_eigenschaften (id INTEGER PRIMARY KEY, objects_id NUMERIC, name TEXT, wert TEXT, typ NUMERIC, zellen_inhalts_beschreibung NUMERIC)�> --�/tableobjects_standartobjects_standart CREATE TABLE objects_standart (id INTEGER PRIMARY KEY, name TEXT, pos_x NUM user_id NUMERIC, recht TEXT, berechtigung NUMERIC)c�)tableuseruserCREATE TABLE user (id INTEGER PRIMARY KEY, user_name TEXCREATE TABLE rechte (id INTEGER PRIMARY KEY, name TEXT, sortierung NUMERIC)�; ==� tableobjects_standart_auswahlobjects_standart_auswahl CREATE TABLE objects_standart_auswahl (id INTEGER PRIMARY KEY, objects_id NUMERIC, parameter TEXT, wert NUMERIC, ausgabe TEXT)�- ++�tableobjects_auswahlobjects_auswahlCREATE TABLE objects_auswahl (id INTEGER PRIMARY KEY, objects_II�Mtableobjects_standart_eigenschaftenobjects_standart_eigenschafteni CREATE TABLE objects_standart_eigenschaften (id INTEGER PRIMARY KEY, objects_id NUMERIC, name TEXT, wert TEXT, typ NUMERIC, zellen_inhalts_beschreibung NUMERIC) 32 +User bearbeiten Bild live sqlite> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordTerra Geschrieben 11. September 2007 Autor Teilen Geschrieben 11. September 2007 Wenn ich beim Aufruf von sqlite meine DB anhänge liest er sie auch richtig ein. Also ich hab das grad gemacht und als ich .tables eingegeben hab hat er mir auch alle 10 Tabellen angezeigt. und auf die Tabelle User kann ich auch zugreifen und ausgeben lassen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 11. September 2007 Teilen Geschrieben 11. September 2007 Heißt die Tabelle user oder User? Tabellennamen können case-sensitive sein, ich weiß nicht, ob das bei SQLite der Fall ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordTerra Geschrieben 11. September 2007 Autor Teilen Geschrieben 11. September 2007 beides user klein geschrieben also im source und bei der anzeige Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordTerra Geschrieben 11. September 2007 Autor Teilen Geschrieben 11. September 2007 hmmm ich bin grad am überlegen ob ich viellicht die lib falsch eingefügt hab... kennt sich hier jemand mit eclipse cdt aus ? wenn ja könnte er mir beschreiben wo ich die einbinden muss? viellicht liegt ja da mein fehler... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordTerra Geschrieben 11. September 2007 Autor Teilen Geschrieben 11. September 2007 habs hinbekommen ... ja das kommt davon wenn man net richtig aufpasst... naja hatte meine db an der falschen stelle abgespeichert... andere frage: wie kann ich eine DB übers netzwerk ansprechen? heist ich möchte das das DB-File auf einem anderen rechner liegt dessen ip ich kenne und der rechner hat ein verzeichnis frei gegeben in dem die DB-Datei liegt nun soll mein programm dies ansprechen und nutzen. also muss ich ja diese zeile entsprechend verändern: rc = sqlite3_open("avs.DB", &db); unter java ginge das indem ich schreib: statt: avs.DB = \\\ip.vom.rechner\verzeichnis\avs.DB das funktioniert unter c aber net also muss es irgendwie anders gehen... weis jemand wie? thx LordTerra Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 12. September 2007 Teilen Geschrieben 12. September 2007 andere frage: wie kann ich eine DB übers netzwerk ansprechen?SQLite hat selbst keine Netzwerkschnittstelle, und es würde mich wundern, wenn es UNC-Pfade unterstützt. Dir bleibt also IMHO nur, ein Netzlaufwerk zu verbinden (Windows) bzw. die Freigabe zu mounten (Linux). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordTerra Geschrieben 12. September 2007 Autor Teilen Geschrieben 12. September 2007 das is ja eher ungünstig Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 12. September 2007 Teilen Geschrieben 12. September 2007 das is ja eher ungünstig Darüber sollte man sich eigentlich vorher informieren. Nach welchen Gesichtspunkten hast du das DBMS denn ausgewählt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LordTerra Geschrieben 12. September 2007 Autor Teilen Geschrieben 12. September 2007 obs auf einer blackfin kamara läuft... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 12. September 2007 Teilen Geschrieben 12. September 2007 blackfin kamaraZu diesem Begriff habe ich nichts im Netz gefunden, außer diversen Forenthreads, die vermutlich alle von dir sind. Kann es sein, dass du von einer Kamera sprichst? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.