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




Antwort per Email an