Einzelnen Beitrag anzeigen

Flippo

Registriert seit: 26. Sep 2004
111 Beiträge
 
Delphi 2005 Personal
 
#1

Access: Datentypen in Kriterienausdruck unverträglich

  Alt 25. Aug 2008, 14:03
Datenbank: Access • Zugriff über: ADO
Hallo,

ich habe folgendes Problem. Ich lese mit der Funktion blubb Daten ein. Das erste einlesen funktioniert auch tadellos. Wenn ich diese Daten dann aber lösche und gleich danach wieder einlese, dann bekomme ich die Fehlermeldung: "Datentypen in Kriterienausdruck unverträglich."
Wenn ich nach dem löschen das Programm neu starte, dann bekomme ich die Fehlermeldung nicht.

Die anderen Beiträge die sich mit dieser Fehlermeldung beschäftigen haben mir alle nicht weitergeholfen, bei den meisten lags am Format des Datums, aber ich hab nur string und integer werte.
Delphi-Quellcode:
function Blubb(var1, var2: String): TStringList;
var
  id: integer;

begin
  result := TStringList.Create;
  self.myStoredProc.Parameters.Items[0].Value := var1;
  self.myStoredProc.Parameters.Items[1].Value := var2;
  self.myStoredProc.Prepared := true;
  self.myStoredProc.Open; //Hier kommt der Fehler
  self.myStoredProc.First;
  while not self.myStoredProc.Eof do begin
    id := self.blubb2(var1, 'STR', self.myStoredProc.Fields[2].asInteger);
    result.Add(self.myStoredProc.fields[1].asString + '=' + intToStr(id));
    self.myStoredProc.Next;
  end;
  self.myStoredProc.Close;
end;
Das ist die aufgerufene myStoredProc in der Access Datenbank:

SELECT te.id, tp.start_byte, ta.val
FROM (tp INNER JOIN ta ON tp.id=ta.p_id) INNER JOIN te ON te.id=ta.e_id
WHERE (tp.start_byte between 23 AND 30)
AND ta.val <> 0
AND te.id in ( SELECT te.id FROM (((tp INNER JOIN ta ON tp.id = ta.p_id)
INNER JOIN te ON te.id = ta.e_id)
INNER JOIN te ON tp.e_id = te.id)
where te.vers = var1 AND te.kennung = 34 AND tp.start_byte = 13 AND ta.val = var2)
ORDER BY te.id, tp.start_byte;

te.vers ist String
ta.val ist integer


Ich hoffe ihr könnt mit dieser Beschreibung etwas anfangen. Ich kann mir diesen Fehler einfach nicht erklären.

Gibt es eine Möglichskeit self.myStoredProc wieder auf die Standartwerte, die es zum Programmstart hat zu setzen? Denn wenn ich das Programm neu starte geht es ja ohne Fehlermeldung.

Danke an alle die sich daran probieren

MfG

flippo
  Mit Zitat antworten Zitat