dbExpress po raz n-ty

0

Witam,

Mam problem ze sterownikiem do MySQL w wersji 5. Zainstalowałem serwer MySQL 5.1.30, dołączyłem plik dbxopenmysql50.dll. Podczas kompilacji plik jest ładowany poprawnie. Używam Turbo Delphi 2006. Gdy zamierzam pobrać rekordy z bazy danych otrzymuję błąd: Access violation w bibliotece dbxopenmysql50.dll. Już nie wiem co mam z tym zrobić. Pobranie rekordów realizuje za pomocą tego kodu:

begin
  ListView1.Items.Clear;
  SQLDataSet1.CommandText := 'SELECT * FROM users';
  SQLDataSet1.Open; //tutaj występuje błąd
  for I := 1 to SQLDataSet1.RecordCount do
  begin
    ListItem := ListView1.Items.Add;
    ListItem.Caption := IntToStr(SQLDataSet1.FieldValues['id']);
    ListItem.SubItems.Add(SQLDataSet1.FieldValues['imie']);
    ListItem.SubItems.Add(SQLDataSet1.FieldValues['nazwisko']);
    SQLDataSet1.Next;
  end;
  SQLDataSet1.Close;
end;

Dodam, że dodawanie rekordów działa poprawnie.
Z góry dziękuję za odpowiedz.

0

Ja tak odczytuje dane, mysle ze zrozumiale

SQLQuery1.CommandText:=('SELECT wolny FROM `'+NazwaBazy+'` WHERE cos=xxx);
SQLQuery1.Open;
SQLQuery1.FieldValues['POLE1']
0

W przypadku obiektu SQLQuery mam ten sam błąd co wyżej.

0

a dajesz nawias w ktorym dopiero piszesz polecenie sql ? Laczy ci sie w ogole z baza ? dbExpress tworzysz dynamicznie ?

0

Tak, połączenie z bazą istnieje, mogę dodawać, usuwać rekordy poprzez SQLDataSet1.ExecSQL(True). Jeśli jednak wykonam polecenie SELECT i wywołam za pomocą SQLQuery1.Open, to wtedy pojawia się ten błąd. Oczywiście nawias uwzględniłem. Obiekt jest utworzony statycznie.

Czy mógłbym prosić o przykład kodu, który pobrał by mi dane z przykładowej tabeli users, o atrybutach id, imie, nazwisko i zapisał je do ListView. Być może zapytanie ma błędną konstrukcję.

0

Jednak dbExpress nie obsługuje MySQL 5.1. Przeniosłem się na wersję 5.0 i wszystko jest dobrze. Mam jeszcze kilka pytań.
Mam obiekt typu ListView i chciałbym, aby utworzone kolumny były jakoś proporcjonalnie rozmieszczone na całej szerokości obiektu. Jak sprawdzić, czy żadna wartość nie została zaznaczona i ostatnie, to jak domyślnie zaznaczać np. pierwszy wiersz?

Z góry dziękuję za odp.

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