[Delphi] Baza danych SQL, błąd - dlaczego?

Odpowiedz Nowy wątek
2006-12-12 17:00
intacto_
0

Witam.
Prosze o zerkniecie. Podczas wykonywania procedury wyswietla mi błąd Invalid field type. Cały dzien próbuje na wszelkie sposoby to naprawić jednak nie mogę. Czy pomijam coś oczywistego w tym kodzie?

Procedura ma za zadanie wyswietlac wybrany przeze mnie rekord. Zapytanie jest poprawne poniewaz zaserwowalem je konsoli mysql i zwrocila rezultat. Wynik jest = 1 Wejsciowo. Błąd występuje tam gdzie gwiazdka, jednak usuwając te linie przechodzi linie nizej do instrukcji if.... Prosze o pomoc. Połączenie z baza nawiazane. Probowalem tez wylaczac i wlaczac.

pozdrawiam.

procedure UzupelnijBaza(zapytanie : String; wynik,rekord : Integer);
var
 i  : integer;
begin
 if (wynik = 1) then
 begin
  // Wykonaj zapytanie i umiesc wyniki w zdeklarowanym polu
  DM.SQLUzupelnianie.CommandText := Zapytanie;
  DM.SQLUzupelnianie.Open(); <b>*</b>
  if ((DM.SQLUzupelnianie.RecordCount > 0) AND (DM.SQLUzupelnianie.RecordCount >= rekord)) then
  begin
   for I := 0 to DM.SQLUzupelnianie.RecordCount do
   begin
    if (I = rekord) then
    begin
     // Wyswietl szukany rekord
     formNowyPacjent.StatusBar.SimpleText := Zapytanie;
     formNowyPacjent.read01.Text := DM.SQLUzupelnianie.FieldValues['Lekarz_Nazwisko'];
     // DM.SQLUzupelnianie.Next;
    end;
   end;
  end
  else
  begin
   // Brak propozycji
  end;
 end;
 DM.SQLUzupelnianie.Close();
end;

Pozostało 580 znaków

2006-12-13 10:51
0

wypadało by podać

  1. co to jest SQLUzupelnianie
  2. treść zapytania
  3. czy robiłeś coś z polami SQLUzupelnianie (np. dodanie ich w design time)

poza tym cała ta konstrukcja jest dziwna, począwszy od pętli for przez ten if - dlaczego tak wyciągasz rekord - jeśli interesuje Cię konkretny to tylko ten jeden wybierz zapytaniem


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-12-13 14:55
intacto_
0
Misiekd napisał(a)

wypadało by podać

  1. co to jest SQLUzupelnianie
  2. treść zapytania
  3. czy robiłeś coś z polami SQLUzupelnianie (np. dodanie ich w design time)

poza tym cała ta konstrukcja jest dziwna, począwszy od pętli for przez ten if - dlaczego tak wyciągasz rekord - jeśli interesuje Cię konkretny to tylko ten jeden wybierz zapytaniem

Przepraszam najmocniej.

  1. SQLUzupelnianie to TSQLDataSet
  2. 'SELECT * FROM TABL_Lekarze WHERE Nazwisko LIKE "%Kow%"';
  3. Tu chyba leży problem bo nie dodawałem ich w zadnym razie...

Dla przykładu z opcja LIMIT w zapytaniu równiez wystepuje ten sam bład, wiec zdecydowalem sie na prowizoryczne rozwiazanie na piechote. Jak to pojdzie chociaz do pewnego momentu, to wroce do wybierania jednym zapytaniem. Szkoda ze nie ma takiej opcji:
wartosc := SQLDataSet.Rekord[0].Kolumna['Nazwa'] :(

Moja niewiedza wynika z braku odpowiednich informacji, znalazlem na 4p. dwa artykuły i dwa traktuja sposób wyszukiwania dwojako. Google jest zawalone problemami z instalacja sterownika mysql w interbase... .

Dzieki za zainteresowanie tematem bo straciłem nadzieje,
Pozdrawiam
</url>

Pozostało 580 znaków

2006-12-13 16:07
0

mam takie podejrzenie, że to wina sterowników dbexpress do IB/FB


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-12-13 19:28
intacto_
0

Ale ja uzywam mysql server z foxserva i stad mam sterownik. komponent mam uzywajac Turbo Delphi. Co mam poczynic?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0