Witajcie.
Używam Delphi7 Enterprise. Stworzyłem sobie taką małą uniwersalną bazę danych ze StringGridem w roli głównej gdzie można dodawać kolumny i wiersze i jako baza lokalna działa bez zarzutu (odczyt, zapis do pliku, drukowanie, wyszukiwanie) ale teraz chciałbym dodać opcję sieci - najlepiej dwukierunkowo czyli import-eksport bazy danych.
Napotkałem niestety na 2 jak dla mnie duże problemy i nie wiem jak się do nich zabrać, gdyż moja zabawa z siecią dopiero się rozpoczyna:
Pierwszy problem w tym, że nie mogę sobie poradzić z połączeniem do MySQL. Chciałbym zrobić to za pomocą pól "Edit" aby była możliwość łączenia się do dowolnej (utworzonej wcześniej oczywiście) bazy danych na MySQL. (czyli przykładowo: na Form1 - edit1: Adres Hosta, Edit2: port , Edit3 :nazwa B.D. Edit4: login Edit5: hasło. i jakiś button - do połączenia) bo jak na razie łączę się tylko poprzez "Value List Editor" w SQLConnection1, ale tam można wpisać na stałe tylko wartości odpowiednie do połączenia tylko z jedną (można powiedzieć stałą) bazą danych.
Drugi problem to taki, że moja baza danych ma zmienną ilość kolumn i wierszy (podczas działania programu można dodawać kolumny lub wiersze - w razie potrzeby) a co za tym idzie, nie wiem jakiej procedury użyć aby po pierwsze: przy eksporcie bazy danych na serwer - automatycznie skorygować odpowiednią ilość kolumn i wierszy i odpowiednio zapisać wyniki i po drugie przy imporcie z serwera - automatycznie skorygować kolumny i wiersze w StringGridzie.
Jeśli byłby mi to ktoś w stanie wytłumaczyć jak to zrobić albo coś doradzić będę wdzięczny, Pozdrawiam.

- Rejestracja:około 19 lat
- Ostatnio:ponad 7 lat
MySQL to nie moja bajka, ale ale ...
Może zainstalowałbyś sobie GExperts w swoim Delphi? Po zainstalowaniu wrzucasz na formę to SQLConnection, ustawiasz w nim co chcesz i za pomocą GEXperts robisz Component to code
. Polecenie to będzie w pull_down menu.
Ja uzyskałem:
with SQLConnection1 do begin
Name := 'SQLConnection1';
ConnectionName := 'MySQLConnection';
DriverName := 'MySQL';
GetDriverFunc := 'getSQLDriverMYSQL';
LibraryName := 'dbxmys30.dll';
Params.Clear;
Params.Add('BlobSize=-1');
Params.Add('Database=DBNAME');
Params.Add('DriverName=MySQL');
Params.Add('ErrorResourceFile=');
Params.Add('HostName=FantastycznySerwer');
Params.Add('LocaleCode=0000');
Params.Add('Password=aCoTam');
Params.Add('User_Name=ToJa_ToJa_ToJa');
Params.Add('Compressed=False');
Params.Add('Encrypted=False');
VendorLib := 'LIBMYSQL.dll';
end;
Co do drugiego problemu, to nawet nie próbuję zgadywać, jakim regułom ma podlegać przenoszenie danych pomiędzy dwoma, o różnej liczbie wierszy i kolumn, StringGridami. Ale w bazie danych, w tabeli możesz mieć trzy kolumny:
- numer_wiersza
- numer_kolumny
- wartosc_celi
No i reszta to już zależy od Ciebie.

- Rejestracja:około 19 lat
- Ostatnio:ponad 7 lat
Dzięki wielkie, za podpowiedź GExperts może mi pomoże bo sam wbudowany dbexpress ma prawdopodobnie zbyt mało opcji w sobie - albo ja ich jeszcze nie odkryłem. Trochę powalczę zobaczę co z tego wyjdzie, co do drugiego problemu myślę żeby zrobić 2 opcje pierwsza (można powiedzieć pierwszy przycisk w programie) importuj - wówczas nastąpi import bazy danych z mysql do stringgrida, gdzie po prostu stringgrid będzie wyzerowany i po prostu przyjmie wszystkie wartości, kolumn i wierszy z MySQL'a i to będzie koniec tej operacji, druga opcja (drugi przycisk) Export - będzie po prostu odwrotnością pierwszego, tyle że to będzie trudniejsze by z poziomu programu praktycznie skasować istniejącą bazę danych na serwerze i założyć ją od nowa w ten sposób by przyjęła wszystkie wartości ze stringgrida który jest w programie lokalnym. :) ale to przede mną, pobawię się trochę i zobaczę co z tego wyjdzie. Dzięki. Pozdrawiam.

- Rejestracja:około 14 lat
- Ostatnio:ponad 4 lata
- Postów:439
Jeśli bazę masz lokalnie spróbuj z DISQLite3, kompatybilność nawet ze starymi delfiaczami, fajne narzędzia pomocniczne i przyjazne API https://www.yunqa.de/delphi/products/sqlite3/index