2007-04-09

Dziwne zachowanie KeyValue w DBLookUpComboBox

Filed under: , Web — jerzy.holda @ 13:13

W przypadku gdy TDBLookUpComboBox (lub TJvDBLoogUpComboBox z pakietu JVCL) jest używane jako lista danych z wybranej tabeli (ListSource), przypisanie wartości polu KeyValue powoduje “wybranie” rekordu z listy. Niestety zdarzyło się, że mimo przypisania poprawnej wartości do KeyValue ComboBox nie zareagował. Podłączony był do DataSource, które z kolei pobierało dane dane z TZQuery (z pakietu Zeos Library), Query natomiast łączyło się z bazą danych MySQL. Zestaw taki był wielokrotnie testowany i nie było z nim problemu, więc trzeba było iść po nitce do kłębka:

W pierwszej kolejności podejrzenie padło na wersję z pakietu JVCL, ale szybko test na standardowej kontrolce wykluczył błąd lookUp’a.

Kolejny w kolejce był lokalnie zainstalowany MySQL w wersji 5. Niestety i tutaj po wrzuceniu bazy na serwer, na którym jest MySQL 4.1. błąd nadal występował.

Przyczyna, jak się okazało, leżała pomiędzy Delphi a Zeose’em. W bazie danych klucz główny był skonfigurowany jako UNSIGNED i podczas pobierania informacji o kolumnach i ich typach wykonywana było konwersja na LongInteger, przez co występowała niezgodność typów. Rozwiązaniem problemu było usunięcie atrybutu UNSIGNED dla klucza głównego i ponowne pobranie informacji o kolumnach.

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

You must be logged in to post a comment.