SQLDataSet a DBGrid

ojcieczhackme
  • Rejestracja:około 18 lat
  • Ostatnio:około 17 lat
  • Postów:23
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!!!


"Jestem jedynie człowiekiem - tylko Bóg jest nieomylny..." Leszek Kaczmarski
puchi
  • Rejestracja:ponad 19 lat
  • Ostatnio:ponad 3 lata
  • Postów:411
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

ojcieczhackme
  • Rejestracja:około 18 lat
  • Ostatnio:około 17 lat
  • Postów:23
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;]


"Jestem jedynie człowiekiem - tylko Bóg jest nieomylny..." Leszek Kaczmarski
puchi
  • Rejestracja:ponad 19 lat
  • Ostatnio:ponad 3 lata
  • Postów:411
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

ojcieczhackme
  • Rejestracja:około 18 lat
  • Ostatnio:około 17 lat
  • Postów:23
0

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


"Jestem jedynie człowiekiem - tylko Bóg jest nieomylny..." Leszek Kaczmarski
puchi
  • Rejestracja:ponad 19 lat
  • Ostatnio:ponad 3 lata
  • Postów:411
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

ojcieczhackme
  • Rejestracja:około 18 lat
  • Ostatnio:około 17 lat
  • Postów:23
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.


"Jestem jedynie człowiekiem - tylko Bóg jest nieomylny..." Leszek Kaczmarski
puchi
  • Rejestracja:ponad 19 lat
  • Ostatnio:ponad 3 lata
  • Postów:411
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

ojcieczhackme
  • Rejestracja:około 18 lat
  • Ostatnio:około 17 lat
  • Postów:23
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


"Jestem jedynie człowiekiem - tylko Bóg jest nieomylny..." Leszek Kaczmarski
teles4
  • Rejestracja:ponad 20 lat
  • Ostatnio:ponad 11 lat
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.


Nie jestem "kompletnym" idiotą,
kilku części nadal brakuje.
puchi
  • Rejestracja:ponad 19 lat
  • Ostatnio:ponad 3 lata
  • Postów:411
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:LizR: "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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.