| Autor |
Beitrag |
D. Annies
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: So 29.06.08 13:01
Hi, Delpher,
wer kann helfen?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| with form1.QSchueler do begin Close; SQL.Clear; SQL.Text := format('CREATE INDEX IDX_NA_VN on "%s" (Name, Vorname)', [form1.TbSchueler.tablename]); ExecSQL; end; showmessage('Fertig'); |
Fehlermeldung siehe oben, kein Meckern beim Compiler.
Danke,
Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: So 29.06.08 13:15
Ich würde (SQL-)Parameter verwenden
_________________ Markus Kinzler.
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: So 29.06.08 18:39
Hi, Markus,
vielen Dank für deine schnelle Antwort, habe sie erst jetzt gelesen - wenn ich nur wüsste, was SQL-Parameter sind.
Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: So 29.06.08 18:55
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| with form1.QSchueler do begin Close; SQL.Text :='CREATE INDEX IDX_NA_VN on :table (Name, Vorname)'; SQL.ParamByName('tab').Value := form1.TbSchueler.tablename; ExecSQL; end; showmessage('Fertig'); |
_________________ Markus Kinzler.
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: So 29.06.08 19:04
Hi, Markus,
leider: Undefinierter Bezeichner: ParamByName
Gruß, Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: So 29.06.08 19:14
Hi, Markus,
ich habe jetzt SQL vor parambyname weggelassen, compiliert, aber jetzt kommt:
Parameter 'table' nicht gefunden.
Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: So 29.06.08 19:25
Man(ich) sollte die Bezeichnung auch durchgehend beibehalten
Delphi-Quelltext 1:
| SQL.Text :='CREATE INDEX IDX_NA_VN on :tab (Name, Vorname)'; |
_________________ Markus Kinzler.
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: So 29.06.08 19:41
Hi, Markus, das hatte ich schon gesehen und beidesmal auf tab geändert, aber mit der
obigen Fehlermeldung. (grr)
Gruß, Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: So 29.06.08 19:49
Versuch mal SQL.Text :='CREATE INDEX IDX_NA_VN on '+ QoutedStr(form1.TbSchueler.tablename)+' (Name, Vorname)';
_________________ Markus Kinzler.
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: So 29.06.08 20:01
Hi, Markus: Allgemeiner SQL-Fehler, Syntax Error (QuotedString habe ich verbessert)
Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: So 29.06.08 22:23
Wieso ist der Tabellenname ein Stringparameter?  Vielleicht einfach mal die Hochkommata/Gänsefüschen weglassen und vielleicht in [] einklammern.
SQL-Anweisung 1:
| CREATE INDEX indexname ON Tabelle (Spalte1,...) |
_________________ Na denn, dann. Bis dann, denn.
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: So 29.06.08 22:55
Hi, Alzaimer,
leider gehen auch diese beiden Möglichkeiten nicht. [Fast alles geht?]
Gruß,
Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mo 30.06.08 08:12
Ich glaube, das Problem liegt nicht in der Syntax, sondern am DB-Zugriff. Die DB kannst Du erreichen, ja? auch über ADO? Dann versuch das mal über ADO. Laut Recherche ist der Fehler "allgemeiner SQL-Fehler" eben KEIN Syntax-Problem, sondern ein Verbindungs-/Konfigurationsproblem.
Übrigens: "Alles geht", fragt sich manchmal nur: Wann.
_________________ Na denn, dann. Bis dann, denn.
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: Mo 30.06.08 18:27
Hi, Alzaimer,
danke für deine Recherche, bzw. deine weiteren Bemühungen. Ich werde mal so vorgehen und melde mich dann wieder. P.S. du hast ja so recht: alles geht-aber wann - aber wir sind ja auch frustrationstolerant und hartnäckig!
So long,
Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: Mo 30.06.08 19:37
Hi, Delpher, (besonders die Helfer: mkinzler, alzaimer)
einmal festhalten:
Ich habe jetzt den Index nur für Name gesetzt, also nicht mehr zusammengesetzt Name;Vorname - und siehe da, so klappt es.
Muss ich denn jetzt die Indizes nacheinander setzen, also erst für Name, dann für Vorname?
Danke für weitere Hilfe,
Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Mo 30.06.08 19:51
Wenn du nach der Kombination Name und Vorname suchen willst, müssen auch beide Felder in einem Index vorhanden sein
info.borland.com/dev...iex/dbiaddindex.html
_________________ Markus Kinzler.
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: Mo 30.06.08 22:45
Hi, Markus - Danke!
Aber, sehe ich das richtig, ich kann keinen mehrfachen Index für eine DBase/FoxPro-Tabelle vergeben, sondern nur für eine Paradox-Tabelle - oder habe ich etwas übersehen?
(Beispiel 1 - 4)
Gruß, Detlef (Frage fast beantwortet ...)
_________________ ut vires desint, tamen est laudanda voluntas
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Di 01.07.08 06:35
Verwende mal statt der BDE den FoxPro-ODBC-Treiber. Das Indexformat von FoxPro unterscheidet sich von dem Der BDE (Mutli-Index)
_________________ Markus Kinzler.
|
|
D. Annies 
      
Beiträge: 1843
windows 7
D6 Enterprise, D7 Pers und TD 2006
|
Verfasst: Di 01.07.08 10:15
Hi, Markus
lies mal bitte:
Der INDEX ON Befehl wird in dem Visual FoxPro-ODBC-Treiber nicht unterstützt. Das Erstellen regulärer Indexe für vorhandene Tabellen über den ODBC-Treiber, der den ALTER TABLE-Befehl verwendet, ist jedoch möglich. Das erstellt eine permanente Beziehung auf derselben Tabelle oder anderem, um durchzuführen, dann mit der Klausel SPEICHER arbeitet Umbruch die Beziehung mit der Klausel "DROP FOREIGN KEY" jedoch damit bleiben den Tag erhalten.
Alles klar?
Gruß, Detlef
_________________ ut vires desint, tamen est laudanda voluntas
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Di 01.07.08 11:21
Ich würd es trotzdem mal per ADO probieren
_________________ Markus Kinzler.
|
|