Einzelnen Beitrag anzeigen

joehd1

Registriert seit: 31. Jul 2010
Ort: Heidelberg
3 Beiträge
 
Delphi 2007 Professional
 
#10

AW: In einer Existierenden Firebird Table ein feld ergänzen

  Alt 18. Sep 2011, 20:22
Also ich habe das ganze nun auf Script umgestellt aber das gleiche Problem. Muss ich dabei alle anderen Query und tables abmelden Close machen ?
Ja ich denke mit einer extra function kann ich im Fall eines Updates einfach ein Prüfscript mitgeben und dann wird die Datenbank aktuell ...

Ich kann aber das script auch genauso in der Console ausführen und es geht ... ich verstehe das nicht.
Script oder query kein unterschied ...


Jetzt kommt
20:30:46 |
[Application: Test]
: [Start transaction]
20:30:46 |
[Application: Test]
: [Execute] alter table TEST add FELD4 Integer

20:30:46 |
[Application: Test]
[Error] -607 335544351 unsuccessful metadata update
STORE RDB$RELATION_FIELDS failed
20:30:46 |
[Application: Test]
: [Rollback]

Delphi-Quellcode:
Function tsqldbform.Checkdatab_field(Tabelle:TIBQuery;Tabname:String;Feldname:String;feldtyp:String;Feldsize:integer;notwendig:Boolean):Boolean;
var _feldtyp :tfieldtype;
    sqlbastel : String;
Begin
  // schauen ob das Datenfeld existiert
  if Tabelle.FindField(Feldname)=nil then
     begin
// Showmessage('Feld nicht vorhanden !');
      showmessage('Datenbank Feld:'+Feldname + ' nicht vorhanden ! / Wird erzeugt ! ');
      sqlbastel := 'alter table ' + Trim(Tabname) + ' add ' + Trim(Feldname) + ' ' + Trim(Feldtyp) +';';

      ibscript1.Script.Text := sqlbastel;
      // Tabelle.SQL.add(sqlbastel);
      ibscript1.ExecuteScript; // Open ; // ExecSQL; // SQL.BeginUpdate;
      // ibscript1.Script.Clear; // SQL.Clear;
      ibmaintransaction.CommitRetaining;
      showmessage(ibscript1.script.text );

     end;
end;
warum kann das Script was ja richtig ankommt nicht ausgeführt werden ?
das muss irgend einen Grund haben.

Geändert von joehd1 (18. Sep 2011 um 20:42 Uhr)
  Mit Zitat antworten Zitat