Autor Beitrag
LowSkills
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 111

Windows XP
Delphi 6 Professional
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 111

Windows XP
Delphi 6 Professional
BeitragVerfasst: Do 19.07.07 08:37 
wie meinen? o.0?

ausblenden 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)

ausblenden 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;
        //beim Open schmiert er ab

        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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 460

win xp
D5, MySQL, devxpress
BeitragVerfasst: Do 19.07.07 09:32 
Da

ausblenden 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 :wink:

ausblenden Delphi-Quelltext
1:
 For i:=0 to Datenaustausch.ADOQuery.RecordCount - 1 do					


Gruß

Aga
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 111

Windows XP
Delphi 6 Professional
BeitragVerfasst: Do 19.07.07 10:04 
user profile iconene 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 486
Erhaltene Danke: 99

Win7, Win81, Win10
Tokyo, VS2017
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 111

Windows XP
Delphi 6 Professional
BeitragVerfasst: 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.

:mrgreen:

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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 111

Windows XP
Delphi 6 Professional
BeitragVerfasst: 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?

:autsch:

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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 486
Erhaltene Danke: 99

Win7, Win81, Win10
Tokyo, VS2017
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 111

Windows XP
Delphi 6 Professional
BeitragVerfasst: 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! :mrgreen:

_________________
Verstand ist eines der am besten verteilten Güter. Jeder denkt, er hätte genug davon.
Kein Problem widersteht lange dem Angriff beharrlichen Denkens.