AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBGO-Komponenten mit Access: ADOQuery funktioniert nicht

DBGO-Komponenten mit Access: ADOQuery funktioniert nicht

Ein Thema von Cogito · begonnen am 13. Mär 2009 · letzter Beitrag vom 16. Mär 2009
Antwort Antwort
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#1

DBGO-Komponenten mit Access: ADOQuery funktioniert nicht

  Alt 13. Mär 2009, 16:59
Datenbank: Access • Version: 2000 • Zugriff über: ADO
Hallo zusammen,

ich versuche eigentlich was ganz simples, was mit den CoreLab Komponenten immer funktioniert hat, nämlich eine einfache Delete-Abfrage auszuführen.
Ich nehme also eine ADOQuery-Komponente und weise der SQL-Eigenschaft folgenden Text zu:

DELETE FROM Translation WHERE (KeyField = :key) Dann bestücke ich zur Laufzeit den Parameter key mit ...

 ReportingDM.MSSQL_TranslationDelete.Parameters.ParamByName('key').Value := schluessel; ...führe das ganze dann mittels ExecSQL aus und ernte prompt eine Fehlermeldung: "Syntaxfehler in FROM Klausel".
Wie gesagt, bei Corelab hat das funktioniert, war aber auch der SQL Server, jetzt ist Access die zugrundeliegende DB.
Kann mir hier jemand weiterhelfen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: DBGO-Komponenten mit Access: ADOQuery funktioniert nicht

  Alt 13. Mär 2009, 17:02
Access wird, wie die meisten DBMS, keine Parameter für Datenbankobjekte ( Tabellennamen, Feldnamen, ...) unterstützen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.162 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: DBGO-Komponenten mit Access: ADOQuery funktioniert nicht

  Alt 13. Mär 2009, 17:09
Welcher Feldtyp hat Key? Evtl. auch ein Schlüsselwort in Access?
Was passiert wenn du die Query direkt in Access ausführtst?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#4

Re: DBGO-Komponenten mit Access: ADOQuery funktioniert nicht

  Alt 13. Mär 2009, 17:37
Zitat von Bernhard Geyer:
Welcher Feldtyp hat Key? Evtl. auch ein Schlüsselwort in Access?
Was passiert wenn du die Query direkt in Access ausführtst?
Dann erkennt Access den Wert :key als Parameter, fragt nach dem Wert und führt die Abfrage aus.

Zitat von mkinzler:
Access wird, wie die meisten DBMS, keine Parameter für Datenbankobjekte ( Tabellennamen, Feldnamen, ...) unterstützen
Ich schätze du wirst wohl leider recht haben.

Welche Alternative gäbe es denn dann (ausser alles im Quellcode auszuführen) ?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: DBGO-Komponenten mit Access: ADOQuery funktioniert nicht

  Alt 13. Mär 2009, 17:59
Wahrscheinlich ist "Translation" ein reserviertes Wort von Access.
Man darf bestimmte Feld-, Tabellen und Viewnamen einfach nicht benützten!

GOLDENE REGEL für alle Datenbankprogrammierer:
Alle Namen (Bezeichner) kontrollieren, ob es nicht ein reserviertes Wort ist.
Ich nehme dazu immer ein Tool; siehe Anhang.
Miniaturansicht angehängter Grafiken
dbwarnings_386.gif  
Andreas
  Mit Zitat antworten Zitat
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#6

Re: DBGO-Komponenten mit Access: ADOQuery funktioniert nicht

  Alt 14. Mär 2009, 10:55
Zitat von shmia:
Wahrscheinlich ist "Translation" ein reserviertes Wort von Access.
Man darf bestimmte Feld-, Tabellen und Viewnamen einfach nicht benützten!

GOLDENE REGEL für alle Datenbankprogrammierer:
Alle Namen (Bezeichner) kontrollieren, ob es nicht ein reserviertes Wort ist.
Ich nehme dazu immer ein Tool; siehe Anhang.
Das war in der Tat das Problem. Darauf wäre ich nie gekommen, weil SQL Server vermutlich hinsichtlich der Benamung nicht so restriktiv sind wie Access.
Wo gibt es denn dieses Tool ?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.162 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: DBGO-Komponenten mit Access: ADOQuery funktioniert nicht

  Alt 14. Mär 2009, 11:27
Zitat von Cogito:
..., weil SQL Server vermutlich hinsichtlich der Benamung nicht so restriktiv sind wie Access. ...
Ist er genauso. Hat nur andere Schlüsselwörter. Und je nach DBMS kann man den Feld/Tabellennamen mittels [...] oder '...' kennzeichnen das dies nicht mehr stört.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: DBGO-Komponenten mit Access: ADOQuery funktioniert nicht

  Alt 16. Mär 2009, 13:55
Zitat von Cogito:
Wo gibt es denn dieses Tool ?
Hier: http://www.delphipraxis.net/internal...ct.php?t=19596
Andreas
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf