Autor Beitrag
dirkil2
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 130



BeitragVerfasst: Mi 16.02.05 15:45 
Ich verwende ein TIBDataSet und weise diesem folg. Query zu:

SELECT A, B, C FROM T WHERE A = :ParamA

A ist eine varchar(8) Spalte.

Im Code bekomme ich bei folg. Zeile die EIBInterBaseError Exception ('conversion error from string ''S3''')
ausblenden Delphi-Quelltext
1:
2:
3:
4:
var 
  qry: TIBDataSet;
  ...
  qry.ParamByName('ParamA').AsString := 'S3';

Die Spalte A war früher eine Integer Spalte und da funktionierte es. Ich mußte den Datentyp aber umstellen und jetzt klappt es nicht mehr. Integer scheint der Default Typ für einen Parameter zu sein. Irgendwie vermisse ich auch eine Stelle, an der ich den Typ des Parameters setzen kann. Bei einer TIBQuery gibt es die Property Params und in dieser kann man die Parameter anlegen und entsprechend konfigurieren.

Was mache ich beim TIBDataSet falsch?

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Mi 16.02.05 17:11 
Hallo,

du verwendest die IBDataset Komponente schon richtig. Das Problem sieht eigentlich eher so aus, als ob die Spalte in der Tabelle doch immer noch eine IntegerSpalte ist.

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
dirkil2 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 130



BeitragVerfasst: Mi 16.02.05 17:16 
Ist sie aber nicht. Genau genommen ist es eine eigene Domain, die auf varchar(8) definiert ist.

Muss man denn bei dieser IBX Komponente nirgends definieren, von welchem Typ der Parameter ist?
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Mi 16.02.05 17:19 
Hab ich noch nie machen müssen und alles läuft hervorragend.
Probier dein Statement doch mal im IBExpert aus und schaue, was da passiert.
Wenn es den Fehler da auch gibt, dann ist definitiv noch was in der DB krum

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
dirkil2 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 130



BeitragVerfasst: Mi 16.02.05 17:45 
In IBExpert geht es.
delphiDeveloper
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Do 17.02.05 03:40 
Ist das Feld A als persistentes Feld definiert?
Wenn ja, einmal rausschmeißen und wieder aufnehmen, dann aendert sich auch der alte Datentyp, der ja mal integer war!

mfg
DD
dirkil2 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 130



BeitragVerfasst: Do 17.02.05 11:20 
RIESENTIPP!! Das hat's gebracht!

Ich habe die Spalte zwar nicht rausgenommen (weil Primärschlüssel), aber einmal Umbenennen und dann wieder zurück war erfolgreich.

Danke delphiDeveloper!