AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi PrimaryKey in einer Paradox-DB löschen und erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

PrimaryKey in einer Paradox-DB löschen und erstellen

Ein Thema von gnr82 · begonnen am 27. Nov 2006 · letzter Beitrag vom 29. Nov 2006
Antwort Antwort
Seite 2 von 3     12 3      
gnr82

Registriert seit: 8. Nov 2006
15 Beiträge
 
#11

Re: PrimaryKey in einer Paradox-DB löschen und erstellen

  Alt 28. Nov 2006, 15:04
Zitat von marabu:
Guten Morgen,

hier wird mit LocalSQL gearbeitet, nicht mit SQL:

SQL-Code:
CREATE TABLE "test.db" (
  id INTEGER,
  test CHAR(50),
  PRIMARY KEY (id)
)
Gültigkeitsbeschränkungen werden von der BDE verwaltet und nicht über LocalSQL manipuliert.

Grüße vom marabu
Danke erstmal für den Tipp,

allerdings funktst das bei mir nicht! Bei mir kommt bei der Verwendung dieser SQL-Anweisung die Fehlermeldung "Allgemeiner SQL-Fehler". Verwende ich die SQL-Anweisung aber ohne die PRIMARY KEY - Sache funktionierts!

Ich glaub ich mach da noch irgendwas falsch ...
  Mit Zitat antworten Zitat
gnr82

Registriert seit: 8. Nov 2006
15 Beiträge
 
#12

Re: PrimaryKey in einer Paradox-DB löschen und erstellen

  Alt 28. Nov 2006, 15:09
Zitat von mkinzler:
Das DDL-Statement müßte so eigentlich funktionieren.
Funktioniert die Erzeugung ohne Primärschlüssel?
Funktioniert das spätere Hinzufügen des Selbigen als Constraint?
Hallo mkinzler,

das hinzufügen des primärschlüssels im nachhinein funktioniert, so wie ich's probiert hab, auch nicht. Kann aber auch sein, dass ich da wieder ein falsches syntax verwendet hab. Das Erzeugen ohne Primärschlüssel funktioniert ohne Probleme.
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#13

Re: PrimaryKey in einer Paradox-DB löschen und erstellen

  Alt 28. Nov 2006, 16:28
Zitat von gnr82:
das hinzufügen des primärschlüssels im nachhinein funktioniert, so wie ich's probiert hab, auch nicht. Kann aber auch sein, dass ich da wieder ein falsches syntax verwendet hab. Das Erzeugen ohne Primärschlüssel funktioniert ohne Probleme.
Ein PrimärSchlüssel mithilfe eines DDL-Statements kann nur in der Art erstellt werden, wie marabu das beschrieben hat (Beitrag #9).
In LocalSQL (und soweit ich weiß, in anderen SQL-Languages auch nicht) kann KEIN PrimärSchlüssel nachträglich erzeugt werden; SekundärSchlüssel bzw weitere Indizes dagegen sehr wohl (hier mal die Hilfe zu LocalSQL zu Rate ziehen).
Um den PrimärSchlüssel einer (mit LocalSQL) neu erzeugten ParadoxTabelle nachträglich zu kreieren, fällt mir nur die Methode Table.AddIndex() ein, nicht gerade elegant, aber funktionabel.
Was lernen wir daraus? Wenn über DDL-Statement eine Tabelle neu erzeugt werden soll, dann gleich mit PrimärSchlüssel
  Mit Zitat antworten Zitat
gnr82

Registriert seit: 8. Nov 2006
15 Beiträge
 
#14

Re: PrimaryKey in einer Paradox-DB löschen und erstellen

  Alt 28. Nov 2006, 17:04
Zitat von raiguen:
Zitat von gnr82:
das hinzufügen des primärschlüssels im nachhinein funktioniert, so wie ich's probiert hab, auch nicht. Kann aber auch sein, dass ich da wieder ein falsches syntax verwendet hab. Das Erzeugen ohne Primärschlüssel funktioniert ohne Probleme.
Ein PrimärSchlüssel mithilfe eines DDL-Statements kann nur in der Art erstellt werden, wie marabu das beschrieben hat (Beitrag #9).
In LocalSQL (und soweit ich weiß, in anderen SQL-Languages auch nicht) kann KEIN PrimärSchlüssel nachträglich erzeugt werden; SekundärSchlüssel bzw weitere Indizes dagegen sehr wohl (hier mal die Hilfe zu LocalSQL zu Rate ziehen).
Um den PrimärSchlüssel einer (mit LocalSQL) neu erzeugten ParadoxTabelle nachträglich zu kreieren, fällt mir nur die Methode Table.AddIndex() ein, nicht gerade elegant, aber funktionabel.
Was lernen wir daraus? Wenn über DDL-Statement eine Tabelle neu erzeugt werden soll, dann gleich mit PrimärSchlüssel
Ich hab ja auch versucht den PrimaryKey beim ertellen der Datenbank zu erzeugen, irgendwie funktionierts aber nicht...

create table "test.db" (ID integer,TEST char(255),PRIMARY KEY(ID)) Noch eine Idee woran es liegen könnte? Ist das script soweit OK?

Danke nochmal!!!
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#15

Re: PrimaryKey in einer Paradox-DB löschen und erstellen

  Alt 28. Nov 2006, 18:12
Zitat von gnr82:
Ich hab ja auch versucht den PrimaryKey beim ertellen der Datenbank zu erzeugen, irgendwie funktionierts aber nicht...

create table "test.db" (ID integer,TEST char(255),PRIMARY KEY(ID)) Noch eine Idee woran es liegen könnte? Ist das script soweit OK?

Danke nochmal!!!
Hmm... kann ich mir nicht vorstellen, da dein Script okay ist und bei mir ohne Murren ausgeführt wird. Bist du sicher, dass da nix passiert? In welchem Ordner wird die Tabelle (Datenbank ist doch wohl etwas zu hochgegriffen ) denn erstellt? In der Regel in dem Verzeichnis, was in der Eigenschaft .DatabaseName der Query eingetragen ist... HAst du denn mal die Suchfunktion von Windows bemüht und nach dieser 'verschwundenen' Tabelle gefahndet (natürlich über sämtliche Laufwerke)?
Gibt Delphi bzw dein Prog eine Fehlermeldung? Oder tut es nur so als ob?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#16

Re: PrimaryKey in einer Paradox-DB löschen und erstellen

  Alt 28. Nov 2006, 18:26
Sorry,

bei genauem Hinschauen sehe ich, dass ADO an Bord ist. Dann wird nicht mit SQL und auch nicht mit LocalSQL gearbeitet, sondern mit JetSQL. Probiere es mal so:

SQL-Code:
/* create table */
CREATE TABLE test (id INTEGER, test CHAR(255))

/* create primary index */
CREATE INDEX test ON test(id)
Viel Glück
  Mit Zitat antworten Zitat
gnr82

Registriert seit: 8. Nov 2006
15 Beiträge
 
#17

Re: PrimaryKey in einer Paradox-DB löschen und erstellen

  Alt 28. Nov 2006, 18:49
Zitat von raiguen:
Zitat von gnr82:
Ich hab ja auch versucht den PrimaryKey beim ertellen der Datenbank zu erzeugen, irgendwie funktionierts aber nicht...

create table "test.db" (ID integer,TEST char(255),PRIMARY KEY(ID)) Noch eine Idee woran es liegen könnte? Ist das script soweit OK?

Danke nochmal!!!
Hmm... kann ich mir nicht vorstellen, da dein Script okay ist und bei mir ohne Murren ausgeführt wird. Bist du sicher, dass da nix passiert? In welchem Ordner wird die Tabelle (Datenbank ist doch wohl etwas zu hochgegriffen ) denn erstellt? In der Regel in dem Verzeichnis, was in der Eigenschaft .DatabaseName der Query eingetragen ist... HAst du denn mal die Suchfunktion von Windows bemüht und nach dieser 'verschwundenen' Tabelle gefahndet (natürlich über sämtliche Laufwerke)?
Gibt Delphi bzw dein Prog eine Fehlermeldung? Oder tut es nur so als ob?
Na das ist ja das Problem, ohne den PrimaryKey funktioniert das Script und eine Db wird auch erzeugt. Mit dem Primary Key kommt Fehlermeldung 'Allgemeiner SQL-Fehler'. Woran kann das liegen? Ich benutze eine TQuery, ist das soweit OK? Und eine Datenbank wird definitiv nicht erzeugt! Was muss ich noch für Einstellungen bei der Query beachten?

  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: PrimaryKey in einer Paradox-DB löschen und erstellen

  Alt 28. Nov 2006, 18:52
Zitat:
Ich benutze eine TQuery,
Du bist also jetzt auf die BDE umgeschwenkt, dann nimm Achims (Marabu) erster Beitrag
Markus Kinzler
  Mit Zitat antworten Zitat
gnr82

Registriert seit: 8. Nov 2006
15 Beiträge
 
#19

Re: PrimaryKey in einer Paradox-DB löschen und erstellen

  Alt 29. Nov 2006, 08:46
Hallo marabu, hallo mkinzler,

ich habs immer noch nicht hinbekommen ...

Ich habs mit beiden angegebenen SQL-Anweisungen versucht hier noch mal der Code:

- der erste Versuch (Fehlermeldung "Allgemeiner SQL-Fehler")
create table "TEST.db" (ID Integer,TEST Float,PRIMARY KEY (ID)) -der zweite Versuch (Fehlermeldung "Indexfehler")
SQL-Code:
create table "TEST.db" (ID Integer,TEST Float)

CREATE INDEX TEST ON TEST(ID)
Wie gesagt, ich benutze TQuery und es soll eine Paradox 5.0 erstellt werden. Kann es da noch Probleme geben?
  Mit Zitat antworten Zitat
hoika

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

Re: PrimaryKey in einer Paradox-DB löschen und erstellen

  Alt 29. Nov 2006, 09:00
Hallo,

das erste Script muss funktionieren.
Fehlt bei deiner Query vielleicht ein SQL.Clear davor ?

Zu der zweiten Variante.
Die beiden Befehle dürfen bei Paradox natürlich nicht auf einmal geschickt werden,
sondern hintereinander!
aber wie gesagt, die erste muss klappen.

Ausserdem ist in enem Minimalbeispiel das "Float" fehl am Platz.
In der Bde heisst das NUMERIC(8,2) (oder mehr als 8).

Weiterhin sollte ein Indexname nicht so heissen wie der Tabellenname,
z.B. Idx_bla.
Das aber nur am Range, weil der Primärindex unter Paradox keinen Namen
hat, er ist leer.

Table.IndexName:= ''; wäre also im Code später das richtige Umschalten.


Aufpassen würde ich bei der BDE auch mit dem Level (DB-Version beim Erzeugen).

BDE-Konfiguration
Treiber->Native->Paradox Level muss mindestens auf 5 stehen.


Heiko
PS:
Zeig mal eine abgespeckte Variante deines Codes.
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 10:46 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