Fragen zur DB

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Also du führst den Code zweimal aus.
Zuerst hast du die Original-Datei noch, dann ersetzt du mit PB die Datei und führst den selben Code nochmal aus, oder?
Du beendest das Programm zwischenzeitlich nicht, oder?

Ich würde die Datei einfach mal darauf testen, ob sie gelocked ist.
Welche(n) Befehl(e) verwendest du zum ersetzen der Datei denn?

Simon
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
sobi
Beiträge: 170
Registriert: 05.02.2005 23:41
Wohnort: passau
Kontaktdaten:

Beitrag von sobi »

Ich führe den Code einmal aus, mit der ersten datei, dann schließe ich das fenster, ersetze die Datei durch eine andere DB "von Hand" also in windows, ohne script, einfach per drag and drop (im gleichen Ordner, gleicher Name) und wenn ich dann mit der zweiten Datei wieder diesen Code ausführen möchte, dann meldet er mir "no such table: V_setup" - Und das verstehe ich nicht, wenn er mir sagen würde, dass er die Datei nicht lesen kann, oder dass es sich um keine DB handelt, aber soweit mir das klar ist, sagt er, das er die Datei nicht findet. Das verstehe ich nicht... :(
Die DB hat Spalten, aber noch keinen Inhalt. - Das noch als Info. Das müsste doch keinen Unterschied machen. Denn Namen haben die Spalten und dann müsste ich mindestens als Ausgabe die Spaltennamen erhalten, oder?

Liebe Grüße,


Simon

PS: Gelocked ist sie nicht!
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Ahaaa!

Du kannst in einer DB doch mehrere Tabellen anlegen. Bist du dir ganz sicher, das die den sleben Namen hat, wie in der anderen Datei?
Du kannst den Namen ja selbst wählen.
Angeben musst du ihn immer hinter "FROM"
Also

Code: Alles auswählen

SELECT * FROM 'Tabellen-Name' ....
Ich denke das isses
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
sobi
Beiträge: 170
Registriert: 05.02.2005 23:41
Wohnort: passau
Kontaktdaten:

Beitrag von sobi »

bluejoke hat geschrieben:Du kannst in einer DB doch mehrere Tabellen anlegen. Bist du dir ganz sicher, das die den sleben Namen hat, wie in der anderen Datei?
Du kannst den Namen ja selbst wählen.
Angeben musst du ihn immer hinter "FROM"
Also

Code: Alles auswählen

SELECT * FROM 'Tabellen-Name' ....
Muss bei "Tabellen-Name" der Name der Datei hin, oder hat die Datei "in sich" noch einen Namen für die Tabelle? Andersrum: Ist "Tabellen-Name" = "Dateiname"? - bzw. kann ich in einer datenbank.db auch mehrere Tabellen anlegen?
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Du kannst in einer Datei (entspricht einer Datenbank) mehrere Tabellen angeben. Eine davon kann aber natürlich genauso heißen wie die Datei, muss aber nicht.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
sobi
Beiträge: 170
Registriert: 05.02.2005 23:41
Wohnort: passau
Kontaktdaten:

Beitrag von sobi »

bluejoke hat geschrieben:Du kannst in einer Datei (entspricht einer Datenbank) mehrere Tabellen angeben. Eine davon kann aber natürlich genauso heißen wie die Datei, muss aber nicht.
Bingo... logo, ging mit einer MySQL - DB ja auch! :-) Na ja, dann ist mein Problem gelöst.
Alles was ich noch brauche ist der Befehl um die Tabellenamen auslesen zu können. - Na ja, müsste aber (hoffentlich) zu finden sein.

LG und danke für deine Tipps,


Simon :allright:
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

In der FAQ von SQLite hab ich so ne ähnliche Fragestellung gesehen, ist jetzt aber zu spät für mich,

gute nacht
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Alles was ich noch brauche ist der Befehl um die Tabellenamen auslesen zu
> können.

Code: Alles auswählen

SQLite3_GetTable("Select tbl_name from sqlite_master where type='table' order by tbl_name" [...])
Grüße ... Kiffi
a²+b²=mc²
sobi
Beiträge: 170
Registriert: 05.02.2005 23:41
Wohnort: passau
Kontaktdaten:

Beitrag von sobi »

*respektvoll den Hut zieh*
also das funktioniert prima. Allerdings verstehe ich nicht ganz, warum er mir einmal in der SQLite_master eine Zeile anlegt und warum einmal nicht... :-(

Die Felder sind für mich noch icht ganz klar:
Feld zwei und drei: Wo ist der unterschied zwischen "Name" und TBL_Name"?
Im Feld vier (rootpage) gibt er mir nur eine Zahl an (2) was bedeutet diese?
Und in Feld fünf (sql) gibt er mir einen Befehl aus. (Create Tabel [...])
Soweit ich das im verstanden habe, legt er diese Zeiel automatisch an und ich kann in dieser Tabelle nichts mit "Insert" usw. ändern. Richtig?

LG


Simon
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Tabellen, die mit sqlite_ anfangen sind Intern für SQLite da, und dürfen von dir nicht verändert werden, ist doch dann eigentlich für dich egal, oder?
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Antworten