![]() |
Datenbank: Access • Version: 2003 • Zugriff über: ADOQuery
ADO Fehler nach Selct-anweisung
Hallo,
" DatamoduleAuftrag.DataModule2.ADOConnection1.Conne cted := false; DatamoduleAuftrag.DataModule2.ADOConnection1.conne ctionstring := 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Projekte\Bertram\Datenbank\EB-XP.mdb; User ID=Admin;Password=;'; DatamoduleAuftrag.DataModule2.ADOConnection1.Conne cted := true; DatamoduleAuftrag.DataModule2.ADOQueryEtikbase.Act ive := False; DatamoduleAuftrag.DataModule2.ADOQueryEtikbase.SQL .Clear; DatamoduleAuftrag.DataModule2.ADOQueryEtikbase.SQL .Add('select * from Artikel where Art-Nr = 13476'); DatamoduleAuftrag.DataModule2.ADOQueryEtikbase.Ope n; " Bekomme nach dieser Anweisung einen Fehler 'ParameterArt hat keinen Standartwert'. Welcher Wert ist hier gemeint? Gruß, Luckner |
AW: ADO Fehler nach Selct-anweisung
Ein "Mussparameter" scheint im Connectionstring zu fehlen
|
AW: ADO Fehler nach Selct-anweisung
Wenn du deinen Quellcode im Foren-Editor markierst und danach auf den Button mit dem Helm klickst, wird der markierte Text in Delphi-Tags eingeschlossen, wodurch er besser lesbar wird.
Zu deinem Code: Ich erkenne mehrere Leerzeichen, wo sie nicht hingehören, weiß aber nicht, ob das nur am Foren-Editor liegt oder ob die bei dir tatsächlich vorhanden sind. Der fehlende Standardwert dürfte Password sein: Dort steht nach dem = kein Wert. Wenn du kein Passwort vergibst, dann laß doch die beiden Parameter User und Password weg.
Delphi-Quellcode:
DatamoduleAuftrag.DataModule2.ADOConnection1.connectionstring := 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Projekte\Bertram\Datenbank\EB-XP.mdb; UserID=Admin;Password=;';
Bei mir steht im ConnectionString, wenn ich kein Passwort verwende, noch 'Persist Security Info=False' |
AW: ADO Fehler nach Selct-anweisung
Problem ist sicher der Bindestrich im Feldnamen. Versuche es mal so:
Delphi-Quellcode:
DatamoduleAuftrag.DataModule2.ADOQueryEtikbase.SQL .Add('select * from Artikel where Artikel.[Art-Nr] = 13476');
Ist das Feld Art-Nr tatsächlich nummerisch? Ansonsten fehlen da Anführungszeichen. |
AW: ADO Fehler nach Selct-anweisung
Funktioniert. Baumina, Danke Dir für die Lösung.
Gruß, Luckner |
AW: ADO Fehler nach Selct-anweisung
Zitat:
|
AW: ADO Fehler nach Selct-anweisung
Das ist übrigens der Grund weshalb man ein Feld niemals "Art-Nr" nennen sollte.
Der Bindestrich wird von der SQL Engine als Minuszeicen erkannt sollte innerhalb eines Feld- oder Tabellennamens nicht verwendet werden. Ganz einfache Regel: alles was Delphi/Pascal verboten ist sollte man auch nicht in Datenbanken verwenden:
Delphi-Quellcode:
Das Quoten der Feld-/Tabellennamen ist keine dauerhafte Lösung, denn irgendwann kommt ein Tool das nicht quoted und schon sind die Probleme wieder da.
var
Art-Nr : string; // verboten Art_Nr : string; // ok R&D : string; // verboten 24stunden:Boolean; // verboten, beginnt mit Ziffer Möhre: double; // verboten, Umlaut |
AW: ADO Fehler nach Selct-anweisung
Zitat:
Ich habe kein Problem damit, eine View zu erstellen, die lesbare Tabellenüberschriften als Spaltennamen enthält. Dann muss man sich im Report-Designer wenigstens keine Überschriften ausdenken.
Code:
Ist nicht nur perfektes SQL, sondern muss auch von jedem 'Tool', das über das Frickelstadium hinaus geht, bedient werden können. Ein Tool, was das nicht kann, bastelt sich irgendwelche SQL-Befehle selbst zusammen und wer so etwas so blöd macht, der hat bestimmt auch noch nie was von SQL-Injection gehört. Also: Finger weg von so einem Tool.
select [Art-Nr],
[R&D] from [Komische Tabelle] Allerdings schadet es nicht, die Feldnamen der Tabellen so zu gestalten, das sie ein 1:1 Äquivalent in der Programmiersprache der Wahl haben, denn es ist nun einem wesentlich übersichtlicher, wenn das ORM-Pendant einer Tabelle, nämlich der Klassenname und die Properties, exakt die gleiche Schreibweise aufweisen wie Tabelle und Felder. Tabelle: 'Person' => Klasse 'TPerson'. Feldname: 'Vorname' => Property 'Vorname'. Einfacher und klarer geht's ja wohl kaum. Wenn man schon OT über Feldnamen philosophiert, dann doch imho so: Bitte bitte keine blöden Abkürzungen. 'VORN,NACHN' ist totaler Cretinismus, wenn man auch 'Vorname, Nachname' verwenden kann. Wie oft ich diesen hirnverbrannten Schwachsinn in Datenbanken schon gesehen habe, erschüttert meinen Glauben an die Menschheit. Getoppt wird das nur noch durch die Verwendung der ungarischen Notation, also dem Voranstellen des Feldtypen und dem stringenten durchziehen der Maxime, das nur exakt 6 Buchstaben lange Feldnamen gute Feldnamen sind. Einige SAP-Entwickler sind übrigens auch Kandidaten für Teeren-und-Federn aufgrund krankhafter Feldnamenverschlüsselung. So. Feierabend. Hatte heute übrigens einen schöööönen Tag. Nun ratet mal, womit ich mich rumschlagen durfte :stupid: |
AW: ADO Fehler nach Selct-anweisung
Zitat:
|
AW: ADO Fehler nach Selct-anweisung
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz