[ DART_VEJDER @ 07.05.2006. 23:33 ] @
postoji li neki drugi nacin da uradim ovo:

imam jednu formu na kojoj imam dva ADOTable-a. jedan je povezan na jednu bazu (jedan fajl) a drugi ADOTable na drugu bazu (drugi fajl)
znaci imamo 2 odvojene baze...

Prva baza, tj. tabela na koju je "zakacen" ADOTable1 ima neke zapise, a tabela na koju je "zakacen" ADOTable2 je prazna.

meni treba da iskopiram sve zapise iz ADOTable-a1 u ADOTable2... tj. bukvalno da prekopiram zapise tabele 1 u tabelu 2 koja se nalazi u drugoj bazi na HDD-u...

ja sam to uradio ovako:



/////////Button1Click :
Code:

ADOTable2->Insert();

for(int i=1;i<=ADOTable1->RecordCount;i++)
{

ADOTable2->Insert()
ADOTable2->FieldByName("ID")->AsInteger=ADOTable1->FieldByName("ID")->AsInteger;
ADOTable2->FieldByName("ime")->AsString=ADOTable1->FieldByName("ime")->AsString;
ADOTable2->FieldByName("prezime")->AsString=ADOTable1->FieldByName("prezime")->AsString;
ADOTable2->FieldByName("god")->AsString=ADOTable1->FieldByName("god")->AsString;
ADOTable1->Next();
}
ADOTable2->Edit();
ADOTable2->Post();

///////////kraj.

ovo radi, ali me interesuje kako bi vi ovo uradili...
osim toga, ima li neki vec gotov metod koji bi mogao ovo odraditi ....
[ X Files @ 08.05.2006. 13:07 ] @
Ja bih tabelu kopirao preko SQL upita INSERT ... INTO, dakle:

// Netestirano !!!

INSERT INTO Tabela2 (POLJE1, POLJE2, POLJE3)
SELECT T1_POLJE1, T1_POLJE2, T1_POLJE3
FROM Tabela1

Ne zaboravi da se taj ADO upit pokrece sa ExecSQL(), a ne sa Open(). Takodje ne zaboravi da
ako je neka od tih tabela povezana sa nekom vizuelnom (data-aware) kontrolom, prethodno uradis
DisableControls() i na kraju EnableControls() nad tim tabelama/tabelom:

Table1->DisableControls();
// UPIT ExecSQL()
Table1->EnableControls();

Nisam pri racunaru koji ima instaliran BCB, ali pogledaj da li u okviru TADOTable postoji metoda
Batch(), koja ima vise funkcija tipa brisanja, kopiranja i sl. Znam da je to postojalo u BDE, ali
nisam siguran za ADO, jer se ne secam da sam to vidjao...

[ itf @ 08.05.2006. 17:16 ] @
Svaka tablica ima varijable za svaki stupac (napraviš dvoklik na ADOTable i desnim klikom na Add fields.."). I to možeš iskoristiti za kopiranje:

Code:
T1->First();  // kreni od prvog zapisa
for(int i = 1; i <= T1->RecordCount; i++){
    T2->Append();
    T2ID->Value = T1ID->Value;
    T2Ime->Value = T1Ime->Value;
    T2Prezime->Value = T1Prezime->Value;
    T2God->Value = T1God->Value;
    T2->Post();
    T1->Next(); //prijeđi na sljedeći zapis
}
[ X Files @ 08.05.2006. 19:54 ] @
Ako koristis MS ACCESS bazu onda su tabele definitivno u JEDNOJ bazi.

Pa cak i kod DBF fajlova, kod kojih je svaka tabela poseban fajl, svejedno, upit
ce ta na osnovu naziva tabele (tj fajla) uzme sve sto treba i izvrsi kopiranje.

Sta ti nije dalo rezultate? Svi primeri su jednostavni...
[ X Files @ 08.05.2006. 19:55 ] @
@fucking voodoo
Izbrisao si post?


[Ovu poruku je menjao X Files dana 08.05.2006. u 20:56 GMT+1]
[ DART_VEJDER @ 08.05.2006. 23:07 ] @
@itf:
pa ja sam i uradio sta si ti ovdje napisao....

@X Files
ja pricam o 2 fajla kao: jedan je na C:\temp\prvi.mdb
a drugi je na D:\neki_folder\drugi.mdb
a i jedan i drugi imaju identicnu tabelu.
Kako onda tu da iskoristim SQL upit?? mislim da je ovako onda najlakse i najbolje...

ako imate jos kakav predlog, ili da me demantujete ...izvolite...

[Ovu poruku je menjao DART_VEJDER dana 09.05.2006. u 00:07 GMT+1]
[ X Files @ 10.05.2006. 16:50 ] @
Ako je vec tako, onda samo petlja (kao sto si pokazao).
[ DART_VEJDER @ 11.05.2006. 18:36 ] @
kada ovako kopiram tabele desava se jedna jako cudna stvar:

zamislio sam da iz jednog programa kopiram prvu tabelu u drugu bazu kojoj mogu pristupiti iz jednog drugog programa.
ja uradim prvi put kopiranje, podaci se iskopiraju, pomocu onog programa normalno pristupim i vidim podatke.

iskopiram drugi put, podaci se iskopiraju, ali se iz onog programa nista ne vidi IAKO SU SE PODACI SVI ISKOPIRALI!!!!

i tako svaki sljedeci put: treci put radi normalno, cetvrti put ne....

u cemu je stvar???
[ DART_VEJDER @ 12.05.2006. 21:41 ] @
problem rijesen pomocu SQL upita:

insert * into IME_TABELE in ODREDISNA_BAZA from IME_TABELE in POCETNA_BAZA

(ako ista tabela vec ne postoji u odredisnoj bazi)
[ X Files @ 12.05.2006. 21:52 ] @
Odlicno.