Autor |
Beitrag |
LowSkills
      
Beiträge: 111
Windows XP
Delphi 6 Professional
|
Verfasst: Mi 18.07.07 19:20
Ich habe seit geraumer Zeit den Fehler bekommen, dass ein Parameter keinen Standartwert hätte. Aber: Von vorne.
Ich habe eine Tabelle und die widerum hat ne Menge Felder mit allen möglichen Inhalten.
Das neueste Feld ist ein Feld, in dem lediglich ein nummerischer Wert drinsteht: 0, 1 oder 2. Im Moment steht überall ne Null drin. Das ist auch gut so.
Jetzt übergebe ich die SQL-Strings und sage dann "bitte db öffnen und ausführen". Dann schmiert das prog ab mit der Meldung:
"Parameter'[T1001 - Verlag].[PL-IX - ID Anrede zum ASP]' hat keinen Standartwert. [...]"
Ich hab echt null Peilung, was da jetzt wieder im argen ist. Es steht doch überall ein wert drin...
Der Felddatentyp in Access ist als "Zahl" angegeben, Feldgröße als "Integer", der definierte Standartwert ist "0".
Blick einer von euch durch oder hat schon mal ein ähnliches Prob gehabt?
Vielen Dank für Eure Hilfe!
_________________ Verstand ist eines der am besten verteilten Güter. Jeder denkt, er hätte genug davon.
Kein Problem widersteht lange dem Angriff beharrlichen Denkens.
|
|
ene
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Do 19.07.07 06:56
Hi,
händisch bekommst du sie noch auf? Dann wäre der Code von Interesse.
_________________ Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
|
|
LowSkills 
      
Beiträge: 111
Windows XP
Delphi 6 Professional
|
Verfasst: Do 19.07.07 08:37
wie meinen? o.0?
Delphi-Quelltext 1: 2: 3: 4: 5:
| procedure HändischVerstehen(Sender: TObject); var Händisch : string; begin Händisch = 'von Hand'; end; |
Also der Code ist folgender:
(Auszug)
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| If FileExists(GetSpecialFolder($26)+'\Power Tools\SQL\relevantVLG.dat') Then begin try Datenaustausch.ADOQuery.Close; Datenaustausch.AdoQuery.SQL.Clear; Datenaustausch.ADOQuery.SQL.LoadFromFile(GetSpecialFolder($26)+'\Power Tools\SQL\relevantVLG.dat'); Datenaustausch.ADOQuery.Open; Datenaustausch.ADOQuery.ExecSQL; Verlagsanzahl:=Datenaustausch.ADOQuery.RecordCount; SENDINGSTATS.MM_LogDatei.Lines.Clear; Datenaustausch.ADOQuery.First; For i:=0 to Datenaustausch.ADOQuery.RecordCount do begin Feldinhalt:=Datenaustausch.ADOQuery.FieldValues['Code Verlag']; SENDINGSTATS.MM_LogDatei.Lines[i]:=Feldinhalt; Datenaustausch.ADOQuery.Next; end; Datenaustausch.ADOQuery.Close; SENDINGSTATS.MM_LogDatei.Lines.SaveToFile(GetSpecialFolder($26)+'\Power Tools\Temporary\relevanteVLGs.dat'); except SENDINGSTATS.RichEdit_SENDINGSTATS.Lines.Add('Ein Fehler ist bei der Ermittlung aller VLG mit Anzahl TB > 0 aufgetreten...'); FailedRequest_close; end; |
Nur zur Info: Die SQL-Anweisungen sind korrekt und fehlerfrei, dass hat das hat Access mir nähmlich aufgrund meiner gewählten Parameter so zusammengewürfelt.
Hoffe, dass hilft weiter, wenngleich ich auch wenig Hoffnung hege...
Danke schonmal!
_________________ Verstand ist eines der am besten verteilten Güter. Jeder denkt, er hätte genug davon.
Kein Problem widersteht lange dem Angriff beharrlichen Denkens.
|
|
Agawain
      
Beiträge: 460
win xp
D5, MySQL, devxpress
|
Verfasst: Do 19.07.07 09:32
Da
Delphi-Quelltext 1:
| For i:=0 to Datenaustausch.ADOQuery.RecordCount do |
das geht schon mal nicht, weil Du die Schleife einmal mehr durchläufst, als gut ist
Delphi-Quelltext 1:
| For i:=0 to Datenaustausch.ADOQuery.RecordCount - 1 do |
Gruß
Aga
|
|
ene
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Do 19.07.07 09:38
Wie sieht denn der SQL-String aus? Baust du eine Connection vorher auf?
Und händisch:= DoppelklickAufDB.mdb
_________________ Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
|
|
LowSkills 
      
Beiträge: 111
Windows XP
Delphi 6 Professional
|
Verfasst: Do 19.07.07 10:04
ene hat folgendes geschrieben: | Wie sieht denn der SQL-String aus? Baust du eine Connection vorher auf? |
Zu Connection vorher Aufbauen:
Ja und Nein.
Ich benutze die Selbe AdoConnection für zig Abfragen und Routinen, also wird und wurde Sie vor dem Punkt an dem es hakt schon mehrfach geöffnet, wieder geschlossen, neue SQL Tags rein, wieder öffnen und so. Zum Zeitpunkt der kritischen Abfrage ist Sie geschlossen, daher auch der Open-Tag, wo es hakt.
Den SQL-String kann ich dir jetzt nicht eins zu eins widergeben, der ist nämlich bei mir zu Hause auf dem Rechner, aber sinngemäß steht folgendes drin:
SQL-Anweisung 1: 2:
| SELECT DISTINCTROW [...],[T1001 - Verlag].[PL-IX - ID zum ASP],... FROM [T1001 - Verlag]; |
Ich bin mittlerweile echt dizzy. Hab wie gesagt leider kein delphi auf der Arbeit.
@Agawain:
Irgendwie hatte ich soetwas schon erwartet. Ja ja, die lieben Schleifen. Werd mich da dann später drum kümmern. Ich mag delphi... 
_________________ Verstand ist eines der am besten verteilten Güter. Jeder denkt, er hätte genug davon.
Kein Problem widersteht lange dem Angriff beharrlichen Denkens.
|
|
OlafSt
      
Beiträge: 486
Erhaltene Danke: 99
Win7, Win81, Win10
Tokyo, VS2017
|
Verfasst: Do 19.07.07 10:21
Meist deutet der Fehler darauf hin, das man im Query ein DB-Feld anspricht, das es in der Tabelle nicht gibt. 99% der Fälle sind Tippfehler, der Rest ist "vergessen, das gelöschte Feld auch im Query zu entfernen"...
_________________ Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
|
|
LowSkills 
      
Beiträge: 111
Windows XP
Delphi 6 Professional
|
Verfasst: Do 19.07.07 10:28
Das würde einiges erklären. Ich habe die aktuelle db erst seit ein paar tagen. Davor habe ich bereits vorab "ins blaue" programmiert. Bei den Tests mit der "alten" db gab es eben dieses Feld noch nicht. Der Fehler kam da schon im selben wortlaut. Jetzt gibt es dieses Feld allerdings und ich kann mir nur schwer vorstellen, einen Fehler in der SQL-Anweisung drinzuhaben. Wie gesagt, die Abfrage wurde mit Access zusammengebastelt, ich habe einfach das was in der SQL-Ansicht drinne steht rauskopiert und damit sollte delphi (wie gehabt) problemlos arbeiten können. Ich werd es dennoch überprüfen. Ihr könnt euch ja derweil gedanken machen, ob es tatsächlich auch ein anderer Fehler sein könnte. Melde mich dann in ner viertel Stunde zurück.
bis gleich....
_________________ Verstand ist eines der am besten verteilten Güter. Jeder denkt, er hätte genug davon.
Kein Problem widersteht lange dem Angriff beharrlichen Denkens.
|
|
LowSkills 
      
Beiträge: 111
Windows XP
Delphi 6 Professional
|
Verfasst: Do 19.07.07 12:11
Überprüfung abgeschlossen. Leider muss ich folgendes verlauten lassen:
Die Zeichenfolgen sind Absolut identisch. Es handelt sich also dabei definitiv nicht um einen schreibfehler. Jemand noch ne Idee?
Danke...
_________________ Verstand ist eines der am besten verteilten Güter. Jeder denkt, er hätte genug davon.
Kein Problem widersteht lange dem Angriff beharrlichen Denkens.
|
|
OlafSt
      
Beiträge: 486
Erhaltene Danke: 99
Win7, Win81, Win10
Tokyo, VS2017
|
Verfasst: Do 19.07.07 12:30
Dann würde ich jetzt das SQL-Statement genauer beäugen. Unter Umständen wird da in anderen Tabellen auf fehlende Felder zugegriffen, oder es werden DB-Felder umbenannt und dann nicht mehr korrekt angesprochen etcpp.
Im Delphi-Code ist IMHO der Fehler nicht zu suchen. An einem "Open" kann man nicht viel falsch machen.
_________________ Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
|
|
LowSkills 
      
Beiträge: 111
Windows XP
Delphi 6 Professional
|
Verfasst: Do 19.07.07 12:53
werd mich gleich mal zur Beratung mit dem Für die Tabellen verantwortlichen zur Beratung zurückziehen. Sobald ich die Heiligen Hallen der Systemadministration verlassen habe und ggf. Klüger geworden bin, werde ich euch etwaige Schritte in die Richtige oder auch falsche Richtung wissen lassen...
Also in diesem Sinne schonmal vorab danke für eure Hilfe.
Bis später dann.
tschuhuss! 
_________________ Verstand ist eines der am besten verteilten Güter. Jeder denkt, er hätte genug davon.
Kein Problem widersteht lange dem Angriff beharrlichen Denkens.
|
|