arkadaslar boyle bir kod var mı bilmiyorum ama serverdaki bir tabloya birden fazla kayıt girmem gerekiyor..
bir dongu ile yapıyorum.. yani bildiğimiz append , post ile.
ama bir seferde bazen üç bin kayıt girmem gerekebiliyor..
yanı döngu 3bin defa dönüyor.. durum boyle olunca server bazen bunu saldırı olarak görüp ip yi banlıyor..
ve program donuyor.. sadece bir veya iki kayıt eklemiş oluyor ..
bir defada toplu kayıt silme veya süzenleme gibi , ekleme de oluyor mu acaba ..
SQL ile toplu kayıt girme..
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
SQL ile toplu kayıt girme..
İnsanca.... Pek insanca....
Merhaba..
- Benim başıma böyle bişey gelse, aklıma ilk gelen iş, local bir veritabanına bu 3000 kaydı döngü ile girip, sonra INSERT INTO ile server'daki veritabanına bir hamlede tüm tabloyu insert etmek şeklinde bir çözüm olurdu.
- Bu cevabı, Text, Excel benzeri bir ortamdan veri aldığını farzederek yazdım. Eğer hali hazırda bir local veritabanından ise direkt Insert Into ile seçilmiş tablo server'a bir çırpıda atılabilir.
- Benim başıma böyle bişey gelse, aklıma ilk gelen iş, local bir veritabanına bu 3000 kaydı döngü ile girip, sonra INSERT INTO ile server'daki veritabanına bir hamlede tüm tabloyu insert etmek şeklinde bir çözüm olurdu.

- Bu cevabı, Text, Excel benzeri bir ortamdan veri aldığını farzederek yazdım. Eğer hali hazırda bir local veritabanından ise direkt Insert Into ile seçilmiş tablo server'a bir çırpıda atılabilir.
- Genellikle veritabanı aktarma işlemleri için kullandığım bir tekniktir.
- Ado ile örnekleyim kendine rota çizersin...
- Tablo2'deki bilgilier Tablo1'e aktarıldı... Bu localde yapacağın işlem.
- Tablo2 ile Tablo1 aynı türden veritabanı olmak zorunda değil. Paradox'dan MSAccess'e veya başkasına bile yapabilirsin.
- Ado ile örnekleyim kendine rota çizersin...
Kod: Tümünü seç
Var
KaynakTablo : String;
begin
KaynakTablo := ExtractFilePath(Application.Exename) + 'Kaynak.MDB';
With AdoQuery.Create(Nil) do begin
Connection := AdoConnection1;
SQL.Clear;
SQL.Add('INSERT INTO Tablo1 ( KaySiraNo, TCKimlik, Adi, Soyadi )');
SQL.Add('SELECT xKaySiraNo, xTCKimlik, xAdi, xSoyadi ');
SQL.Add('FROM Tablo2 IN ""[;DATABASE='+ KaynakTablo + ';PWD=' + Password +'];');
ExecSQL;
Free;
end;
- Tablo2 ile Tablo1 aynı türden veritabanı olmak zorunda değil. Paradox'dan MSAccess'e veya başkasına bile yapabilirsin.
ilginize teşekkurler
Tablo2 ile Tablo1 aynı türden veritabanı olmak zorunda değil. Paradox'dan MSAccess'e veya başkasına bile yapabilirsin...
hocam benım istediğim bu..
serverda ki mysql in bir tablosunda belli kayıtlar (SQL ile çekilen )
pc imde bulunan bir acces veritabanına aktarmak istiyorum..
... uğrastım yapamadım.. aradım bulamadım
..
Tablo2 ile Tablo1 aynı türden veritabanı olmak zorunda değil. Paradox'dan MSAccess'e veya başkasına bile yapabilirsin...
hocam benım istediğim bu..
serverda ki mysql in bir tablosunda belli kayıtlar (SQL ile çekilen )
pc imde bulunan bir acces veritabanına aktarmak istiyorum..
... uğrastım yapamadım.. aradım bulamadım

İnsanca.... Pek insanca....
arkadaslar aynı veritabanında iki tabloda o olayı hallettim..
ustalar bilirler ben yine de bilmeyenlere yardım olsun diye yazayım..
yapmak istediğim ve yazdığım kod şu şekilde..
şimdi benim a ve b diye iki tablom var..
a daki kayıtları b ye aktarmam gerekiyor..
ama hepsini değil
a tablsu
kod___________isim
100 01 ________Ali
100 02 ________Ahmet
100 03 ________mehmet
100 04 ________Can
şeklinde ise ben b tablosuna
kod___________A_________B
100 01 ________50________0
800 01_________0_______50
100 02 ________50________0
800 01_________0_______50
100 03 ________50________0
800 01_________0_______50
100 04 ________50________0
şeklinde eklemek istiyordum.. bu durumda a tablsoundaki her bir kayıt için b tablosunda bir birinden faklı iki kayıt eklemem gerekiyordu..
ben de bir tempc taplosu tanımlayıp içine iki kayıt yazdım..
eğer ilk kayıtta ise bunu yaz ikide ise bunu diye ..
kod ise boyle tempc = adat
umarım birilerinin işi düşer de bı kod işini görür..
ustalar bilirler ben yine de bilmeyenlere yardım olsun diye yazayım..
yapmak istediğim ve yazdığım kod şu şekilde..
şimdi benim a ve b diye iki tablom var..
a daki kayıtları b ye aktarmam gerekiyor..
ama hepsini değil
a tablsu
kod___________isim
100 01 ________Ali
100 02 ________Ahmet
100 03 ________mehmet
100 04 ________Can
şeklinde ise ben b tablosuna
kod___________A_________B
100 01 ________50________0
800 01_________0_______50
100 02 ________50________0
800 01_________0_______50
100 03 ________50________0
800 01_________0_______50
100 04 ________50________0
şeklinde eklemek istiyordum.. bu durumda a tablsoundaki her bir kayıt için b tablosunda bir birinden faklı iki kayıt eklemem gerekiyordu..
ben de bir tempc taplosu tanımlayıp içine iki kayıt yazdım..
eğer ilk kayıtta ise bunu yaz ikide ise bunu diye ..
kod ise boyle tempc = adat
Kod: Tümünü seç
Insert into fisler (tarih,hesapkodu,aciklama,borc,alacak)
Select "2006.12.12",
case when a.konu ="1" then u.hesapno else "800 01" end,
" OCAK-2006 Dönem Aidati"
, case when a.konu ="1" then 50 else "0" end ,
case when a.konu ="1" then "0" else 50 end
from adat as a, uyeler as u where u.durum = True
İnsanca.... Pek insanca....