Xojo Conferences
MBSSep2018MunichDE
XDCMay2019MiamiUSA

wie eine neue Tabelle in eine SQL-Datenbank einf ügen? (Real Studio network user group Deutschland Mailinglist archive)

Back to the thread list
Previous thread: Schlechte CPU-Auslastung bei Schleife
Next thread: Re: wie SQL-Tabelle leeren (nicht löschen!)??


Probleme mit String Bearbeitung   -   Markus Schnell
  wie eine neue Tabelle in eine SQL-Datenbank einf ügen?   -   Roland Quadstege
   Re: wie eine neue Tabelle in eine SQL-Datenbank e infügen?   -   Roland Quadstege
   Re: wie eine neue Tabelle in eine SQL-Datenbank e infügen?   -   Roland Quadstege
   Re: wie eine neue Tabelle in eine SQL-Datenbank e infügen?   -   Stefan Sicurella
   Re: wie eine neue Tabelle in eine SQL-Datenbank e infügen?   -   Florian Ubr

wie eine neue Tabelle in eine SQL-Datenbank einf ügen?
Date: 09.08.09 15:11 (Sun, 09 Aug 2009 16:11:07 +0200)
From: Roland Quadstege
die Fragen hören nicht auf - hier wieder eine: Ich möchte in eine
bereits bestehende Datenbank eine neue Tabelle einfügen. Dazu habe ich
mal versucht, über ein getopenfolder eine passende Datenbank
auszuwählen. Falls ich nichts auswähle, passiert hier irgendwas (eine
Datenbank "adressen_2.rsd" wird angelegt). Aber falls ich was wähle,
so versuche ich eine neue Tabelle in diese Datenbank einzufügen. Aber
wenn ich diese Datenbank nachher mal ins Projekt ziehe, steht nichts
neues drin. Nur die Tabelle(n), die vorher auch schon drin war(en).
Woran liegt das? Habe ich da was nicht richtig gelesen - oder nur
wieder Tomaten auf den Augen.

dim db as REALSQLDatabase
db=new REALSQLDatabase
dim f as FolderItem
f=GetOpenFolderItem("")
if f=nil then
f= new FolderItem("adressen_2.rsd")
db.DatabaseFile=f
MsgBox str(db.CreateDatabaseFile)
if db.CreateDatabaseFile then 'wenn die Datenbank angelegt werden
könnte
if db.Error=false then
db.SQLExecute ("create table daten (da_firma varchar,
da_anrede varchar, da_id Integer primary key)")
MsgBox "die Datenbank wurde erzeugt ("+db.errormessage +")."
else
MsgBox "hat nicht geklappt ("+db.ErrorMessage+")"
end if
end if
Else 'die Datenbank ist vorhanden
db.DatabaseFile=f
if db.error=false then
db.SQLExecute ("create table daten (da_firma varchar, da_anrede
varchar, da_id Integer primary key)")
MsgBox "in der Datenbank "+f.name+ "wurde eine neue Tabelle
erzeugt ("+db.errormessage +")."
else
MsgBox "hat nicht geklappt ("+db.ErrorMessage+")"
end if
end if

jemand eine Idee???

Gruß
Roland

Re: wie eine neue Tabelle in eine SQL-Datenbank e infügen?
Date: 10.08.09 16:52 (Mon, 10 Aug 2009 17:52:41 +0200)
From: Roland Quadstege

Am 10.08.2009 um 13:01 schrieb Stefan Sicurella:

> Hallo,
>
> das sieht schwer kompliziert aus, ich mache es so:
>
> d=dbfakt.sqlSelect("select * from projekte")
> if d=nil then // Tabelle noch nicht angelegt
> dbfakt.sqlExecute("create table projekte(felda varchar, feldb
> varchar,feldc varchar)")
> end if
> dbfakt.commit

Hallo Stefan,

jawoll, es fehlte das db.commit und zu allem Unglück auch
db.connect() - das musste in die Hose gehen.
Vielen Dank noch mal für den Tipp.

Gruß

Roland

>
> und dann noch am besten gleich einen Index erstellen mit
> dbfakt.SQLExecute("Create index projektindex1 on projekte (felda)")
> dbfakt.SQLExecute("Create index projektindex2 on projekte (feldb)")
> dbfakt.SQLExecute("Create index projektindex3 on projekte (feldc)")
>
> Gruß
>
> Stefan
>
>> die Fragen hören nicht auf - hier wieder eine: Ich möchte in eine
>> bereits bestehende Datenbank eine neue Tabelle einfügen. Dazu habe
>> ich mal versucht, über ein getopenfolder eine passende Datenbank
>> auszuwählen. Falls ich nichts auswähle, passiert hier irgendwas
>> (eine Datenbank "adressen_2.rsd" wird angelegt). Aber falls ich was
>> wähle, so versuche ich eine neue Tabelle in diese Datenbank
>> einzufügen. Aber wenn ich diese Datenbank nachher mal ins Projekt
>> ziehe, steht nichts neues drin. Nur die Tabelle(n), die vorher auch
>> schon drin war(en). Woran liegt das? Habe ich da was nicht richtig
>> gelesen - oder nur wieder Tomaten auf den Augen.
>>
>> dim db as REALSQLDatabase
>> db=new REALSQLDatabase
>> dim f as FolderItem
>> f=GetOpenFolderItem("")
>> if f=nil then
>> f= new FolderItem("adressen_2.rsd")
>> db.DatabaseFile=f
>> MsgBox str(db.CreateDatabaseFile)
>> if db.CreateDatabaseFile then 'wenn die Datenbank angelegt werden
>> könnte
>> if db.Error=false then
>> db.SQLExecute ("create table daten (da_firma varchar,
>> da_anrede varchar, da_id Integer primary key)")
>> MsgBox "die Datenbank wurde erzeugt ("+db.errormessage +")."
>> else
>> MsgBox "hat nicht geklappt ("+db.ErrorMessage+")"
>> end if
>> end if
>> Else 'die Datenbank ist vorhanden
>> db.DatabaseFile=f
>> if db.error=false then
>> db.SQLExecute ("create table daten (da_firma varchar, da_anrede
>> varchar, da_id Integer primary key)")
>> MsgBox "in der Datenbank "+f.name+ "wurde eine neue Tabelle
>> erzeugt ("+db.errormessage +")."
>> else
>> MsgBox "hat nicht geklappt ("+db.ErrorMessage+")"
>> end if
>> end if
>>
>> jemand eine Idee???
>>
>> Gruß
>> Roland
>

Re: wie eine neue Tabelle in eine SQL-Datenbank e infügen?
Date: 10.08.09 16:50 (Mon, 10 Aug 2009 17:50:53 +0200)
From: Roland Quadstege

Am 10.08.2009 um 12:53 schrieb Florian Ubr:

> Probier mal ein db.commit nach dem db.SQLExecute.

es fehlte hier sowohl das db.commit als auch die Frage nach dem
db.connect. Das musste auf die Nase fallen.
Jetzt bin ich ein ganzes Stück weiter.
Vielen Dank nochmal für den "schnellen Blick".

Gruß
Roland

> Ich hab zwar schon länger nix mit Datenbanken in REALbasic gemacht,
> aber früher hats das glaub ich immer gebraucht.
>
> Ansonsten schau doch auch mal ob im db.errorcode was steht.
>
> Flo
>
> Am 09.08.2009 um 16:11 schrieb Roland Quadstege:
>
>> die Fragen hören nicht auf - hier wieder eine: Ich möchte in eine
>> bereits bestehende Datenbank eine neue Tabelle einfügen. Dazu habe
>> ich mal versucht, über ein getopenfolder eine passende Datenbank
>> auszuwählen. Falls ich nichts auswähle, passiert hier irgendwas
>> (eine Datenbank "adressen_2.rsd" wird angelegt). Aber falls ich was
>> wähle, so versuche ich eine neue Tabelle in diese Datenbank
>> einzufügen. Aber wenn ich diese Datenbank nachher mal ins Projekt
>> ziehe, steht nichts neues drin. Nur die Tabelle(n), die vorher auch
>> schon drin war(en). Woran liegt das? Habe ich da was nicht richtig
>> gelesen - oder nur wieder Tomaten auf den Augen.
>>
>> dim db as REALSQLDatabase
>> db=new REALSQLDatabase
>> dim f as FolderItem
>> f=GetOpenFolderItem("")
>> if f=nil then
>> f= new FolderItem("adressen_2.rsd")
>> db.DatabaseFile=f
>> MsgBox str(db.CreateDatabaseFile)
>> if db.CreateDatabaseFile then 'wenn die Datenbank angelegt werden
>> könnte
>> if db.Error=false then
>> db.SQLExecute ("create table daten (da_firma varchar,
>> da_anrede varchar, da_id Integer primary key)")
>> MsgBox "die Datenbank wurde erzeugt ("+db.errormessage +")."
>> else
>> MsgBox "hat nicht geklappt ("+db.ErrorMessage+")"
>> end if
>> end if
>> Else 'die Datenbank ist vorhanden
>> db.DatabaseFile=f
>> if db.error=false then
>> db.SQLExecute ("create table daten (da_firma varchar, da_anrede
>> varchar, da_id Integer primary key)")
>> MsgBox "in der Datenbank "+f.name+ "wurde eine neue Tabelle
>> erzeugt ("+db.errormessage +")."
>> else
>> MsgBox "hat nicht geklappt ("+db.ErrorMessage+")"
>> end if
>> end if
>>
>> jemand eine Idee???
>>
>> Gruß
>> Roland
>

Re: wie eine neue Tabelle in eine SQL-Datenbank e infügen?
Date: 10.08.09 12:01 (Mon, 10 Aug 2009 13:01:42 +0200)
From: Stefan Sicurella
Hallo,

das sieht schwer kompliziert aus, ich mache es so:

d=dbfakt.sqlSelect("select * from projekte")
if d=nil then // Tabelle noch nicht angelegt
dbfakt.sqlExecute("create table projekte(felda varchar, feldb
varchar,feldc varchar)")
end if
dbfakt.commit

und dann noch am besten gleich einen Index erstellen mit
dbfakt.SQLExecute("Create index projektindex1 on projekte (felda)")
dbfakt.SQLExecute("Create index projektindex2 on projekte (feldb)")
dbfakt.SQLExecute("Create index projektindex3 on projekte (feldc)")

Gruß

Stefan

> die Fragen hören nicht auf - hier wieder eine: Ich möchte in eine
> bereits bestehende Datenbank eine neue Tabelle einfügen. Dazu habe
> ich mal versucht, über ein getopenfolder eine passende Datenbank
> auszuwählen. Falls ich nichts auswähle, passiert hier irgendwas
> (eine Datenbank "adressen_2.rsd" wird angelegt). Aber falls ich was
> wähle, so versuche ich eine neue Tabelle in diese Datenbank
> einzufügen. Aber wenn ich diese Datenbank nachher mal ins Projekt
> ziehe, steht nichts neues drin. Nur die Tabelle(n), die vorher auch
> schon drin war(en). Woran liegt das? Habe ich da was nicht richtig
> gelesen - oder nur wieder Tomaten auf den Augen.
>
> dim db as REALSQLDatabase
> db=new REALSQLDatabase
> dim f as FolderItem
> f=GetOpenFolderItem("")
> if f=nil then
> f= new FolderItem("adressen_2.rsd")
> db.DatabaseFile=f
> MsgBox str(db.CreateDatabaseFile)
> if db.CreateDatabaseFile then 'wenn die Datenbank angelegt werden
> könnte
> if db.Error=false then
> db.SQLExecute ("create table daten (da_firma varchar,
> da_anrede varchar, da_id Integer primary key)")
> MsgBox "die Datenbank wurde erzeugt ("+db.errormessage +")."
> else
> MsgBox "hat nicht geklappt ("+db.ErrorMessage+")"
> end if
> end if
> Else 'die Datenbank ist vorhanden
> db.DatabaseFile=f
> if db.error=false then
> db.SQLExecute ("create table daten (da_firma varchar, da_anrede
> varchar, da_id Integer primary key)")
> MsgBox "in der Datenbank "+f.name+ "wurde eine neue Tabelle
> erzeugt ("+db.errormessage +")."
> else
> MsgBox "hat nicht geklappt ("+db.ErrorMessage+")"
> end if
> end if
>
> jemand eine Idee???
>
> Gruß
> Roland

Re: wie eine neue Tabelle in eine SQL-Datenbank e infügen?
Date: 10.08.09 11:53 (Mon, 10 Aug 2009 12:53:20 +0200)
From: Florian Ubr
Probier mal ein db.commit nach dem db.SQLExecute.
Ich hab zwar schon länger nix mit Datenbanken in REALbasic gemacht,
aber früher hats das glaub ich immer gebraucht.

Ansonsten schau doch auch mal ob im db.errorcode was steht.

Flo

Am 09.08.2009 um 16:11 schrieb Roland Quadstege:

> die Fragen hören nicht auf - hier wieder eine: Ich möchte in eine
> bereits bestehende Datenbank eine neue Tabelle einfügen. Dazu habe
> ich mal versucht, über ein getopenfolder eine passende Datenbank
> auszuwählen. Falls ich nichts auswähle, passiert hier irgendwas
> (eine Datenbank "adressen_2.rsd" wird angelegt). Aber falls ich was
> wähle, so versuche ich eine neue Tabelle in diese Datenbank
> einzufügen. Aber wenn ich diese Datenbank nachher mal ins Projekt
> ziehe, steht nichts neues drin. Nur die Tabelle(n), die vorher auch
> schon drin war(en). Woran liegt das? Habe ich da was nicht richtig
> gelesen - oder nur wieder Tomaten auf den Augen.
>
> dim db as REALSQLDatabase
> db=new REALSQLDatabase
> dim f as FolderItem
> f=GetOpenFolderItem("")
> if f=nil then
> f= new FolderItem("adressen_2.rsd")
> db.DatabaseFile=f
> MsgBox str(db.CreateDatabaseFile)
> if db.CreateDatabaseFile then 'wenn die Datenbank angelegt werden
> könnte
> if db.Error=false then
> db.SQLExecute ("create table daten (da_firma varchar,
> da_anrede varchar, da_id Integer primary key)")
> MsgBox "die Datenbank wurde erzeugt ("+db.errormessage +")."
> else
> MsgBox "hat nicht geklappt ("+db.ErrorMessage+")"
> end if
> end if
> Else 'die Datenbank ist vorhanden
> db.DatabaseFile=f
> if db.error=false then
> db.SQLExecute ("create table daten (da_firma varchar, da_anrede
> varchar, da_id Integer primary key)")
> MsgBox "in der Datenbank "+f.name+ "wurde eine neue Tabelle
> erzeugt ("+db.errormessage +")."
> else
> MsgBox "hat nicht geklappt ("+db.ErrorMessage+")"
> end if
> end if
>
> jemand eine Idee???
>
> Gruß
> Roland