AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken ADO Fehler nach Selct-anweisung
Thema durchsuchen
Ansicht
Themen-Optionen

ADO Fehler nach Selct-anweisung

Ein Thema von Luckner · begonnen am 7. Nov 2013 · letzter Beitrag vom 8. Nov 2013
Antwort Antwort
Seite 1 von 2  1 2      
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#1

ADO Fehler nach Selct-anweisung

  Alt 7. Nov 2013, 12:58
Datenbank: Access • Version: 2003 • Zugriff über: ADOQuery
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: ADO Fehler nach Selct-anweisung

  Alt 7. Nov 2013, 13:02
Ein "Mussparameter" scheint im Connectionstring zu fehlen
Markus Kinzler
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: ADO Fehler nach Selct-anweisung

  Alt 7. Nov 2013, 13:06
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.

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'

Geändert von Perlsau ( 7. Nov 2013 um 13:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: ADO Fehler nach Selct-anweisung

  Alt 7. Nov 2013, 13:07
Problem ist sicher der Bindestrich im Feldnamen. Versuche es mal so:

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.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: ADO Fehler nach Selct-anweisung

  Alt 7. Nov 2013, 13:16
Funktioniert. Baumina, Danke Dir für die Lösung.

Gruß, Luckner
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: ADO Fehler nach Selct-anweisung

  Alt 7. Nov 2013, 14:59
Der fehlende Standardwert dürfte Password sein: Dort steht nach dem = kein Wert.
Der ist ja auch geheim!
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

AW: ADO Fehler nach Selct-anweisung

  Alt 7. Nov 2013, 16:31
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.
fork me on Github
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#8

AW: ADO Fehler nach Selct-anweisung

  Alt 7. Nov 2013, 18:31
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
  Mit Zitat antworten Zitat
Alt 7. Nov 2013, 18:37     Erstellt von Smut
Dieser Beitrag wurde von TBx gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: ADO Fehler nach Selct-anweisung

  Alt 7. Nov 2013, 18:50
Nun ratet mal, womit ich mich rumschlagen durfte
Mit dem eigenen Ego?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#10

AW: ADO Fehler nach Selct-anweisung

  Alt 7. Nov 2013, 18:56
Nun ratet mal, womit ich mich rumschlagen durfte
Mit dem eigenen Ego?
Nein, daran habe ich mich gewöhnt. Wir kennen uns schon ein Weilchen, musst Du wissen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:26 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