Piszę aplikację bazodanową opartą na Interbase i mam następujący problem. Wszystkie pytania wysyłam do bazy przez ibquery. W przypadku gdy pobieram dane z pól string wszystko jest wporządku, lecz każda próba pobrania przez ibquery danych z pola typu Integer kończy się komunikatem w wolnym tłumaczeniu "Takie pole nie istnieje" :/
Z góry dziękuję za pomoc.
<font size="6">KOD!!!</span>
ludzie myślcie jak zadajecie pytania!!!
procedure TForm1.Button3Click(Sender: TObject);
var r:integer;
l:string;
begin
l:=IBQuery1.FieldByName('ROK').asstring;
r:=IBQuery1.FieldByName('KIERUNEK').asinteger;
end;
W tym przypadku z pola Rok pobiera wartość bez problemu a dla Kierunek wyskakuje wiadomość "Field 'KIERUNEK' not found.
Zapytanie w ibquery ma postać "SELECT * FROM PRACE" więc powinno pobrać wszystkie pola.
- a jak wygląda tabela PRACE?
- jesteś pewien, że masz dobre zapytanie wpisane do query
Wszystko powinno być dobrze.
Mam 4 pola typu varchar i z nich pobiera mi do stringa i 4 pola typu Integer. Nazwy się zgadzają bo już sprawdzałem czy nie przekręciłem nazwy pola. To po prostu wygląda tak jakby ibquery nie przyjmowało pól typu integer.
to Ty chcesz odpowiedzi nie ja a ja nie mam czasu Cię prosić o cokolwiek
EOT
mealfis wstaw kod metadata tej tabeli i pokaz kod z programu delphi gdzie masz wstawiana do query komende i jak jest ona wykonywana :)
Też kiedyś miałem taki problem i wiesz jak go rozwiązałem? Po prostu wstawiłem dwa komponenty IBQuery. Pod pierwszym odczytywałem sobie bazę a pod drugim robiłem operacje różne i nie miałem już komunikatu że brakuje mi pola itd.Piszę aplikację bazodanową opartą na Interbase i mam następujący problem. Wszystkie pytania wysyłam do bazy przez ibquery. W przypadku gdy pobieram dane z pól string wszystko jest wporządku, lecz każda próba pobrania przez ibquery danych z pola typu Integer kończy się komunikatem w wolnym tłumaczeniu "Takie pole nie istnieje" :/
Z góry dziękuję za pomoc.
Pewnie nie utworzyłeś tego pola w IBQuery. Kliknij dwukrotnie na ten komponent i sprawdź.
Poza tym i tak jesteś szczęściarzem, bo mi się nie udało wysłać danych przez IBQuery nigdy. Zawsze dostawałem jakiś dziwny komunikat.
Jeszcze jedna sprawa. Nie wiem, na czym robisz, ale Firebird w wersji 1.5 miał problem z aliasami pól. Czyli jak robiłeś np: Select t.pole as jakies_pole, to nie wiedzial co to "jakies_pole".
W wersji 2.0 już z tym było trochę lepiej.
Juhas pomijając fakt, że zazwyczaj Twoje konstrukcje do normalnych czy też standardowych nie należą to gwarantuje Ci, że zarówno wykonywanie zapytań typu UPDATE, DELETE, INSERT przez IBQuery jak i aliasy działają zarówno z FB 1.5 jak i 2.0 i nowszych