Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   ADO Fehler nach Selct-anweisung (https://www.delphipraxis.net/177455-ado-fehler-nach-selct-anweisung.html)

Luckner 7. Nov 2013 13:58

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

mkinzler 7. Nov 2013 14:02

AW: ADO Fehler nach Selct-anweisung
 
Ein "Mussparameter" scheint im Connectionstring zu fehlen

Perlsau 7. Nov 2013 14:06

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'

baumina 7. Nov 2013 14:07

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.

Luckner 7. Nov 2013 14:16

AW: ADO Fehler nach Selct-anweisung
 
Funktioniert. Baumina, Danke Dir für die Lösung.

Gruß, Luckner

Furtbichler 7. Nov 2013 15:59

AW: ADO Fehler nach Selct-anweisung
 
Zitat:

Zitat von Perlsau (Beitrag 1234891)
Der fehlende Standardwert dürfte Password sein: Dort steht nach dem = kein Wert.

Der ist ja auch geheim!

sx2008 7. Nov 2013 17:31

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:
var
  Art-Nr : string; // verboten
  Art_Nr : string; // ok
  R&D : string;   // verboten
  24stunden:Boolean; // verboten, beginnt mit Ziffer
  Möhre: double;  // verboten, Umlaut
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.

Furtbichler 7. Nov 2013 19:31

AW: ADO Fehler nach Selct-anweisung
 
Zitat:

Zitat von sx2008 (Beitrag 1234951)
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.

Mag schon sein, nur ist ein Tool, das nicht quoted 'a waste of hd space'. Das ist ja sogar ANSI SQL, denn ohne 'quoten' wären auch Feldnamen wie 'select', 'user', 'database' usw. (also alle reservierten Wörter) für dieses Tool verboten.

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:
select [Art-Nr],
       [R&D]
  from [Komische Tabelle]
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.

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:

DeddyH 7. Nov 2013 19:50

AW: ADO Fehler nach Selct-anweisung
 
Zitat:

Zitat von Furtbichler (Beitrag 1234984)
Nun ratet mal, womit ich mich rumschlagen durfte :stupid:

Mit dem eigenen Ego? :stupid: :tongue:

Furtbichler 7. Nov 2013 19:56

AW: ADO Fehler nach Selct-anweisung
 
Zitat:

Zitat von DeddyH (Beitrag 1234989)
Zitat:

Zitat von Furtbichler (Beitrag 1234984)
Nun ratet mal, womit ich mich rumschlagen durfte :stupid:

Mit dem eigenen Ego? :stupid: :tongue:

Nein, daran habe ich mich gewöhnt. Wir kennen uns schon ein Weilchen, musst Du wissen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 Uhr.
Seite 1 von 2  1 2      

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