Autor Beitrag
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Fr 14.02.03 13:49 
Hallo, hab mal wieder ein Problem,

ich will am Anfang meines Progs einen Check einbauen, ob bestimmte Felder in der Datenbank vorhanden sind (für Programmerweiterungen/Updates). Dazu hab ich mir die IBDatabaseInfo-Kompo rausgesucht. Nach dem Connect, führe ich folgenden Code aus:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
with IBDatabaseInfo1 do begin
     Database.GetFieldNames('Artikel',liste);
     if liste.IndexOf('art')=-1 then
     IBSQL.SQL.Text:='ALTER TABLE artikel ADD art integer DEFAULT 0 NOT NULL, ADD lager INTEGER DEFAULT 0, ADD bestellt integer DEFAULT 0;';
        if Mainform.debug then   //Debug-Modus????
           if MessageDlg(IBSQL.SQL.Text,mtConfirmation,[mbOK,mbCancel],0)=mrCancel then
              Exit;
        IBSQL.ExecQuery;
        Commit(Self);
     end;


Dabei bekomm ich aber den Fehler "Datenbank nicht zugewiesen". Wie mach ichs richtig?


Zuletzt bearbeitet von UGrohne am Mo 17.02.03 20:22, insgesamt 1-mal bearbeitet
UGrohne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 17.02.03 20:18 
OK, hab den Titel geändert, hab die IBDatabaseInfo-Kompo rausgeworfen und machs direkt über IBDatabase... hab ja eh auf IBDatabaseInfo1.Database zugegriffen und das is ja dasselbe :autsch:

OK, aber der Fehler bleibt derselbe..... :(
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Di 18.02.03 14:42 
Ich habe das so gelöst dank Lemmy :
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  tableslist : TStringList;
begin
  tableslist := TStringList.Create;
  IBDataModule.IBSearchTables.DatabaseName := servername.Text + ':' +
     serverdirectory.Text + 'bisconfig.gdb';
  IBDataModule.IBSearchTables.GetTableNames(tableslist,false);


IBSearchTables ==> TIBDatabase
UGrohne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Di 18.02.03 17:02 
Manchmal sieht man den Wald vor lauter Bäumen nicht mehr... *g*. OK, dass man nicht vorher connecten darf, wenn man GetTableNames aufruft, wusste ich net, aber da bekam ich dann ne Zugriffsverletzung. Naja, vll. hätte ich wohl meine StringList erstmal erzeugen müssen *g*

Danke.... habs jetzt geschafft.

Gruß