SQLDataSet a DBGrid

0

Czy jest taka możliwość, aby w "DBGrid" wyświetlić wyniki zapytania z "SQLDataSet"? Być może ja coś robię źle, ale kiedy chcę ustawić w "SQLDataSet" właściwość "Active" na "True", to otrzymuję okienko z komunikatem o błędzie "Operation not allowed on a unidirectional dataset". Mam oczywiście na formie komponent "DataSource", ale podejrzewam, że jest zbędny, ponieważ w "Kompendium" wyniki zapytania są wyświetlane na komponencie "ListView". Tak więc czy da się wyświetlić dane z MySQL-a w "DBGrid"? Z góry wielkie dzięki za pomoc.

Wesołych Świąt!!!

0

da się sprawdź czy masz wszystko z połączeniem w porządku jeśli tak to po ustawieniu Active na true powinien sie w BDGrid wyświetlić wynik zapytania

0

No ale właśnie kiedy chcę ustawć "DataSource" w "DBGrid" to otrzymuję ten komunikat o błędzie. Może zamiast komponentu "DataSource" wstawić jakiś inny (łączę się z MySQL)?

P.S. Puchi jestem z Twoich okolic;]

0

przed chwilą sprawdzałem u siebie i wszystko było ok. Może coś z delphi masz nie tak albo sterowniki odbc przeinstaluj i powinno pomóc. Ja na D5 miałem kłopoty z ADO i po zainstalowaniu patcha wszystko śmiga jak należy. Wiec jak masz D5 to możesz jeszcze tego spróbować. Patcha znajdziesz na torry.net

0

A możesz mi wysłać ten projekt? DataSource, DBGrid, SQLConnection i SQLDataSet - chodzi o te 4 komponenty.

0

mogę ale nie udostepnie ci połączenia z baza danych bo jest to baza firmy w której pracuje a bez tego to to ze ci wyśle sam projekt to nic ci nie da. Sprawdź czy z jakąś inna bazą ci się łączy np. MSSQL jeśli tak to nie jest wina twojego programu tylko delphi albo sterowników ODBC. Jest jeszcze jedna rzecz jaka możesz sprawdzić. Kliknij dwa ray na pole ConnectionString komponentu AdoConnection, wybierz USE CONNECTION STRING i kliknij BUILD. Wypełnij wszystkie pola zaznacz zapamiętywanie hasła i w polu "wprowadź początkowy katalog do użycia" zostaw puste pole. Powinna tam być nazwa bazy danych ale jak ja tam coś ustawiam to mi sie wysypuje program a jak zostawię puste to wszystko działa jak należy

0

A mógłbyś przynajmniej zrobić screeny Object Inspectora dla każdego z tych 4 komponentów? Bo podejrzewam, że coś źle ustawiam jeśli chodzi o DataSource dla poszczególnych komponentów.

0

Screeny ani moja konfiguracja nic ci nie da bo to nie jest wina tego. Poza tym ja w ustawieniach tych komponentów nic nie zmieniam są na domyślnych ustawieniach.
Trochę poszukałem i znalazłem że przy połączeniu musisz użyć pośrednika w postaci DataSetProvider i to powinno pomóc. Masz tu linka:

http://www.tek-tips.com/viewthread.cfm?qid=201167

Powodzenia. Pozdro

0

Dzięki wielkie, ale dalej mam to samo... Chodzi mi o screeny Object Inspectora, żeby tam zobaczyć jak masz ustawione właściwości "DataSet" i "DataSource" bo mi właśnie przy ich ustawianiu wywala błędy...

Konkretnie to się gryzą SQLDataSet i DataSource. Byłbym ogromnie wdzięczny gdybyś zrobił mi takie screeny:

http://img258.imageshack.us/my.php?image=58738177sl3.jpg

http://img242.imageshack.us/my.php?image=23385992kj8.jpg

http://img171.imageshack.us/my.php?image=98898778pd5.jpg

0

dbExpress jest technologią jednokierunkową i nie da się wyświetlić danych w DBGridzie w prosty sposób.
Trzeba użyć połączenia SQLDataSet -> DataSetProvider -> ClientDataSet -> DataSource -> DBGrid
Tylko z ClientDataSet jest mały myk, jak masz w bazie więcej niż 50 rekordów to sobie odpuść bo będzie mulił okrutnie.

0

Stary przecież Ci tłumacze że to nie zależy od ustawień ja mam takie same jak ty z tym że ja do połączenia używam ADO a Ty DBExpress wiec musisz zrobić tak jak napisałem wcześniej albo sie na ADO przeżuć lub ewentualnie na ZEOS. Jeżeli to co napisałem wyżej nie pomada to ja nie wiem bo innego rozwiązania tego problemu nie znalazłem a nawet na stronie codegear piszą że to pomaga. Jeśli ci się nie uda proponuje zostawić DBExpress i skorzystać z czegoś innego. A ustawienia DataSource i DataSet zostaw w spokoju bo są poprawne to nie jest ich wina tylko DBExpressa.

Tekst ze strony codegear:

jkaster "I just tried to make a dbexpress thing to mysql, and I added a sqlconneciton, sqldataset and datasource, I connect them up, I can activate the connection and dataset, and then even connect it to the datasource, but when I try and put the datasource on a dbgrid, it says operation not allowed on a unidirectional dataset.. help?" - use ClientDataSet and TDataSetProvider, or TSimpleDataSet to make your datasets bidirectional and updateable

link: http://dn.codegear.com/article/33797

a tu masz identyczny temat na 4p gdzie jest ta sama odpowiedź jak moja:
http://4programmers.net/Forum/247336

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