AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TTable: In vorhandener Datenbank Spalte hinzufügen/löschen
Thema durchsuchen
Ansicht
Themen-Optionen

TTable: In vorhandener Datenbank Spalte hinzufügen/löschen

Ein Thema von Helmi · begonnen am 6. Jan 2009 · letzter Beitrag vom 19. Jan 2009
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#11

Re: TTable: In vorhandener Datenbank Spalte hinzufügen/lösch

  Alt 7. Jan 2009, 12:51
Danke für den Hinweis!

Eine Frage hab ich noch. In dem Code sind folgende Typen angegeben:

Delphi-Quellcode:
  
szName: DBINAME;

Props: CURProps;
hDb: hDBIDb;
TableDesc: CRTblDesc;
pFlds: pFLDDesc;
pOp: pCROpType;
also DBINAME, CURProps, hDBIDb, CRTblDesc, pFLDDesc, pCROpType

Woher bekomm ich die?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: TTable: In vorhandener Datenbank Spalte hinzufügen/lösch

  Alt 7. Jan 2009, 14:20
Hallo,

meistens ist das die Unit BDE.

Geh einfach mal ein DBTables,
suche nach einer der Strukturen und klicke
auf Ctrl + linke Maustaste.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#13

Re: TTable: In vorhandener Datenbank Spalte hinzufügen/lösch

  Alt 7. Jan 2009, 14:23
Zitat von hoika:
meistens ist das die Unit BDE.
Extakt diese Unit war es

Danke
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: TTable: In vorhandener Datenbank Spalte hinzufügen/lösch

  Alt 7. Jan 2009, 14:53
Hallo,

und nun sieh mal dazu das an:

Delphi-Quellcode:
with Query do
begin
  SQL.Clear;
  SQL.Add('alter table table1 add name(char(50)');
  ExecSQL,
end;

Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#15

Re: TTable: In vorhandener Datenbank Spalte hinzufügen/lösch

  Alt 7. Jan 2009, 15:03
Zitat von hoika:
Hallo,

und nun sieh mal dazu das an:

Delphi-Quellcode:
with Query do
begin
  SQL.Clear;
  SQL.Add('alter table table1 add name(char(50)');
  ExecSQL,
end;
Ja - schaut natürlich einfacher aus.

Nur hab ich damit ein paar Probleme:

1. Mein Datenbankname ändert sich - das heisst, ich hab mehrere Datenbanken (davon ist aber nur immer Eine offen)
2. Meine Datenbanken sind nicht im gleichen Ordner wie die Exe, sondern in einem Unterordner.

Ich hab deinen Code mal getestet, table1 gegen eine von mir gerade geöffnete Datenbank ersetzt.
Nur bekomm ich dann einen Fehler:

Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Schulungsmanager.exe ist eine Exception der Klasse EDBEngineError aufgetreten. Meldung: 'Tabelle nicht vorhanden
Datei oder Verzeichnis nicht vorhanden
Datei: E:\Schulungsmanager\Programm\Schulungsindex.DB
Datei: E:\Schulungsmanager\Programm\Schulungsindex.DBF
Datei: E:\Schulungsmanager\Programm\Schulungsindex.txt
Datei: E:\Schulungsmanager\Programm\Schulungsindex'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
Ganz klar natürlich, weil die nicht im Ordner "Programm" liegt, sondern bei mir unter "E:\Schulungsmanager\Programm\Datenbank".

[Edit]
Kann es sein, dass in deinem SQL-Text eine geschlossene Klammer fehlt?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: TTable: In vorhandener Datenbank Spalte hinzufügen/lösch

  Alt 7. Jan 2009, 15:11
Delphi-Quellcode:
with Query do
begin
  SQL.Text := 'alter table table1 add name char(50);';
  ExecSQL;
end;
Markus Kinzler
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#17

Re: TTable: In vorhandener Datenbank Spalte hinzufügen/lösch

  Alt 7. Jan 2009, 15:15
Zitat von Helmi:
Zitat von hoika:
Hallo,

und nun sieh mal dazu das an:

Delphi-Quellcode:
with Query do
begin
  SQL.Clear;
  SQL.Add('alter table table1 add name(char(50)');
  ExecSQL,
end;
Ja - schaut natürlich einfacher aus.

Nur hab ich damit ein paar Probleme:

1. Mein Datenbankname ändert sich - das heisst, ich hab mehrere Datenbanken (davon ist aber nur immer Eine offen)
2. Meine Datenbanken sind nicht im gleichen Ordner wie die Exe, sondern in einem Unterordner.

Ich hab deinen Code mal getestet, table1 gegen eine von mir gerade geöffnete Datenbank ersetzt.
Nur bekomm ich dann einen Fehler:

Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Schulungsmanager.exe ist eine Exception der Klasse EDBEngineError aufgetreten. Meldung: 'Tabelle nicht vorhanden
Datei oder Verzeichnis nicht vorhanden
Datei: E:\Schulungsmanager\Programm\Schulungsindex.DB
Datei: E:\Schulungsmanager\Programm\Schulungsindex.DBF
Datei: E:\Schulungsmanager\Programm\Schulungsindex.txt
Datei: E:\Schulungsmanager\Programm\Schulungsindex'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
Ganz klar natürlich, weil die nicht im Ordner "Programm" liegt, sondern bei mir unter "E:\Schulungsmanager\Programm\Datenbank".

[Edit]
Kann es sein, dass in deinem SQL-Text eine geschlossene Klammer fehlt?
kann es sein, dass du Datenbank mit Tabelle verwechselt hast?

Gruss Kh
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#18

Re: TTable: In vorhandener Datenbank Spalte hinzufügen/lösch

  Alt 7. Jan 2009, 15:18
Zitat von khh:
kann es sein, dass du Datenbank mit Tabelle verwechselt hast?
Ich denke, man merkt, dass ich kaum was mit Datenbanken zuvor zu tun hatte
Ja - ich denke dass ich Datenbank mit Tabelle verwechsle
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: TTable: In vorhandener Datenbank Spalte hinzufügen/lösch

  Alt 7. Jan 2009, 15:18
Hallo,

> Kann es sein, dass in deinem SQL-Text eine geschlossene Klammer fehlt? >

na ein bissel Arbeit solltest du auch haben
Delphi-Quellcode:
with Query do
begin
  DataBaseName:= 'c:\blabla\bla';
  SQL.Clear;
  SQL.Add('alter table table1 add name(char(50))');
  ExecSQL,
end;
Übrigens funktioniert der Befehl nur, wenn die Tabelle geschlossen ist
(das alter table oder DbiDoRestructure braucht exclusiven Zugriff)


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#20

Re: TTable: In vorhandener Datenbank Spalte hinzufügen/lösch

  Alt 7. Jan 2009, 16:54
Ich traus mir ja kaum zu schreiben, aber ich hab mit mir selbst gerungen, und auch gewonnen, und hab jetzt Query eingesetzt.

Soweit geht das ja ganz gut, nur wollt ich den SQL-Text mit Variablen versehen.
Dazu hab ich folgendes gebaut:

Query.SQL.Add(Format('alter table %s add %s(char(%s))', [Datenbank, Spalte, Laenge]));
Leider bekomm ich aber diese Fehlermeldung:
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Schulungsmanager.exe ist eine Exception der Klasse EDBEngineError aufgetreten. Meldung: 'Ungültiges Schlüsselwort
Symbol-String: (char(50))
Zeilennummer: 1'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
Was mach ich falsch?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz