[Lazarus] Uložit vyplněný ParadoxDataset do SQL table

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Fantom007 23. 1. 2021 13:33

Pomocí komponenty TParadoxDataset načtu obsah Paradoxové databáze do ParadoxDataset. Ten bych chtěl uchovat jako SQL table (vlastně se jedná o konverzi databáze Patadox do SQL). Mohu ho přenést do komponenty Dataset (DataSourceSQL.DataSet:=ParadoxDataset1 - funguje, vidím ho v připojené DBGrid) nebo i do SQLQuery (SQLQuery1.DataSource:=DataSourceSQL), ale nevím, jak ho převést do tabulky (komponenta TTable zde neexistuje). Mohu zkusit SQLConnection1.ExecuteDirect('INSERT INTO Table2 SELECT * FROM Table1'), ale nevím, co napsat na místo Table1. Mohu si tabulku nejprve vytvořit, ale v příkazu SQLConnection1.ExecuteDirect('CREATE TABLE Table2 AS SELECT * FROM Table1) mám stejný problém - co napsat na místo Table1, když nemám k dispozici tabulku, ale vyplněný dataset. Pokud vyberu místo Paradoxové databáze SQL databázi, kopie se vytvoří bez problémů (znám Table1). Poradí mi někdo?
Fantom007
Junior

Odeslat příspěvekod JanFiala 24. 1. 2021 11:24

Vzhledem k trochu odlišné definici struktury u Paradox a SQL (nepsal jsi, o jakou SQL databázi jde) by automatické vytváření tabulky nebylo moc šťastné.
Pokud to má být konverze, bylo by vhodné tabulky na SQL databázi vytvořit se správnou strukturou, referenční integritou a pak je plnit daty.

Konverzi si můžeš jednoduše udělat ručně - 2 vnořené cykly, v jednom projdeš záznamy, v tom vnořeném pak sloupce, vygeneruješ INSERT příkaz a pustíš jej. Ošetříš si tím i mapování sloupců z Paradox na typ v SQL.

Další možností je použít přímo možností SQL - pokud ta umí import dat.
Co můžeš udělat dnes, odlož na včerejšek
JanFiala
Expert
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků