Satır satır text içine bilgi yazmak.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Satır satır text içine bilgi yazmak.
Merhaba.
B2006 ve MSSQL kullanıyorum.
Benim sorunum basit bir SELECT ifade sonucunu satır satır, görerek text içine yazmak.
Tablo içerisinde 1000 tane kayıt varsa, query çalışmaya başladığı zaman bu 1000 tane satırın text içinde görünmesini istiyorum. Sırayla değişerek query'i tamamlasın.
while döngüsünü kullanmak istedim ama query başladığı zaman text içine yazmadan sonuç bitiyor ve text içine son kayıtın bilgileri geliyor.
Ayrıca declare cursor ifadesi ile dönen query sonucunu satır satır işlemek istedim, bunda da sonuç aynı. Query çalışıyor, text içine bir bilgi yazmıyor (veya yazıyorsa ekranda görünmüyor) ve son kayıtın bilgileri geliyor.
Tşk.ederim kolay gelsin.
B2006 ve MSSQL kullanıyorum.
Benim sorunum basit bir SELECT ifade sonucunu satır satır, görerek text içine yazmak.
Tablo içerisinde 1000 tane kayıt varsa, query çalışmaya başladığı zaman bu 1000 tane satırın text içinde görünmesini istiyorum. Sırayla değişerek query'i tamamlasın.
while döngüsünü kullanmak istedim ama query başladığı zaman text içine yazmadan sonuç bitiyor ve text içine son kayıtın bilgileri geliyor.
Ayrıca declare cursor ifadesi ile dönen query sonucunu satır satır işlemek istedim, bunda da sonuç aynı. Query çalışıyor, text içine bir bilgi yazmıyor (veya yazıyorsa ekranda görünmüyor) ve son kayıtın bilgileri geliyor.
Tşk.ederim kolay gelsin.
s.a.
query yi normal griddegösterdiğiniz zaman 1000 satır geliyormu.
belki kayıtları çekerken bi sıkıntı vardır.
sql kodunuzu ve text e eklemek için kullandığınız kodları gönderirseniz bi bakalım.
query yi normal griddegösterdiğiniz zaman 1000 satır geliyormu.
belki kayıtları çekerken bi sıkıntı vardır.
sql kodunuzu ve text e eklemek için kullandığınız kodları gönderirseniz bi bakalım.

Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
a.s
DBGrid'lerde sorun yok. Kayıtların hepsi geliyor. Query ise basit bir SELECT cümlesi. SELECT * from Table1 gibi.
Benim tek istediğim bu query sonucunun text içinde değişerek gözükmesi.
Table1 içinde dosya isimleri olduğunu düşünürsek Edit1 içinde sırayla bu dosya isimlerini görmek istiyorum.
Şöyle bir şey denedim ama olmadı.
Tşk.ederim..
DBGrid'lerde sorun yok. Kayıtların hepsi geliyor. Query ise basit bir SELECT cümlesi. SELECT * from Table1 gibi.
Benim tek istediğim bu query sonucunun text içinde değişerek gözükmesi.
Table1 içinde dosya isimleri olduğunu düşünürsek Edit1 içinde sırayla bu dosya isimlerini görmek istiyorum.
Şöyle bir şey denedim ama olmadı.
Kod: Tümünü seç
AdoQuery1.sql.clear;
adoQuery1.close;
AdoQuery1.connection:=Form1.AdoConnection;
AdoQuery1.sql.add('SELECT * from Table1');
AdoQuery1.Open;
while AdoQuery1.Eof=False do
begin
Edit1.Clear;
Edit1.Text:=AdoQuery1.FieldsByName('Dosya_Ismi').AsString;
AdoQuery1.Next;
end;
burda en son kaydı görmeniz normal çünkü işlemler hızlı bir şekilde gerçekleştiği için siz sadece son kaydı göryrosunuz. arada bilgisayarı bekletecek işlemler yapmanız istediğiniz sonucu almanızı sağlayabilir.
kolay gelsin.
Kod: Tümünü seç
applicaiton.procesmessages;
sleep(100);
vs,
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
döngü de her seferinde edit i temizliyor ve editin üstüne yazıyorsunuz doğal olarak en son da en son kaydı edit e ekliyor.
böylece tüm dosya isimleri eklenir edit içine ama amcı anlamdım. Edit de bukadar dosya ismi ne içindir.
Kod: Tümünü seç
while AdoQuery1.Eof=False do
begin
Edit1.Text:= edit1.text + AdoQuery1.FieldsByName('Dosya_Ismi').AsString;
AdoQuery1.Next;
end;
Bir kelimenin anlamını öğretsen bile yeter..



Tşk.ederim yanıtlarınız için.
Amacı, kullanıcıların işlem adımlarını görmelerini sağlamak. Öbür türlü yüklü bir query çalıştığı zaman kullanıcı programın kilitlendiğini zannediyor. Sonra task manager aracılığıyla görevi sonlandırma işlemine devam ediyorlar.
Bu şekilde olursa işlemin devam ettiği görülecektir.
Amacı, kullanıcıların işlem adımlarını görmelerini sağlamak. Öbür türlü yüklü bir query çalıştığı zaman kullanıcı programın kilitlendiğini zannediyor. Sonra task manager aracılığıyla görevi sonlandırma işlemine devam ediyorlar.
Bu şekilde olursa işlemin devam ettiği görülecektir.
Porocccesbar ve/veya label ile birlikte
döngü bloğu içine
yazarak programın kilitlenmesini (kilitlenmiş gibi görünmesini) engelleyebilirsin.
Kolay gelsin
döngü bloğu içine
Kod: Tümünü seç
Application.ProccessMessagesİ
Kolay gelsin
Tekrar merhaba.
Peki yukarıdaki işlemler herhangi bir SELECT ifadesi değilde, INSERT INTO ifadesi içinde geçerli mi?
Ben şöyle bir kod yazdım. Yapmak istediğim ise elimde bir tane tablo var, aynı özelliklere ve alanlara sahip ikinci bir tablo oluşturdum. Birinci tablodaki kayıtları ikinci tabloya birebir aktarılacak.
Burada da kayıtlar tek tek aktarılırken ProgressBar a hareket vermeyi düşünmüştüm.
Tabloda yaklaşık 100 sütun ve 17.000 adet satır kaydı var.
Tşk.ederim kolay gelsin
.
Peki yukarıdaki işlemler herhangi bir SELECT ifadesi değilde, INSERT INTO ifadesi içinde geçerli mi?
Ben şöyle bir kod yazdım. Yapmak istediğim ise elimde bir tane tablo var, aynı özelliklere ve alanlara sahip ikinci bir tablo oluşturdum. Birinci tablodaki kayıtları ikinci tabloya birebir aktarılacak.
Kod: Tümünü seç
AdoQuery1.SQL.Add('SELECT * FROM öncekitable');
AdoQuery1.Open;
ProgressBar1.Min:=0;
ProgressBar1.Max:=AdoQuery1.RecordCount;
AdoQuery2.SQL.Add('INSERT INTO sonrakitable (alanlarım..)');
AdoQuery2.SQL.Add('SELECT alanlarim FROM öncekitable');
AdoQuery2.ExecSQL;
while AdoQuery1.Eof=false do
begin
ProgressBar1.Position:=ProgressBar1.Position+1;
Application.ProcessMessages;
Sleep(5);
AdoQuery1.Next;
end;
Tabloda yaklaşık 100 sütun ve 17.000 adet satır kaydı var.
Tşk.ederim kolay gelsin
.
s.a.
gönderdiğin kodla yaparsan olmaz.
orda queryi exec etmeden öcne bir form oluşturup kullanıcıya lütfen bekleyiniz tarzında bir yazı verdikten sonra queryi exec etmen lazım. exec den sonra da kullanıcıya gösterdiğin formu kapatırsan kullanıcı işlemin bittiğini anlar.
çünkü exec dediğin zaman kayıtları aktarmadan alt satırlara geçmeyecektir.
kolay gelsin.
gönderdiğin kodla yaparsan olmaz.
orda queryi exec etmeden öcne bir form oluşturup kullanıcıya lütfen bekleyiniz tarzında bir yazı verdikten sonra queryi exec etmen lazım. exec den sonra da kullanıcıya gösterdiğin formu kapatırsan kullanıcı işlemin bittiğini anlar.
çünkü exec dediğin zaman kayıtları aktarmadan alt satırlara geçmeyecektir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
a.s
Cevabın için teşekkür ederim sevgili aslangeri.
Peki bu noktada bana önerin ne olabilir? Daha öncede bahsettiğim gibi 100 sütun ve 17.000 satır kaydı var tabloda. En az 5 dakika bekleme yapacak. Bu 5 dakika kullanıcı tarafında uzun bir süre. Öyle bir şey yapmalıyım ki kullanıcı bu süre içerisinde herhangi bir işlem yapmadan beklesin.
Değerli önerilerin için ayrıca teşekkür ederim.
Saygılarımla....
Cevabın için teşekkür ederim sevgili aslangeri.
Peki bu noktada bana önerin ne olabilir? Daha öncede bahsettiğim gibi 100 sütun ve 17.000 satır kaydı var tabloda. En az 5 dakika bekleme yapacak. Bu 5 dakika kullanıcı tarafında uzun bir süre. Öyle bir şey yapmalıyım ki kullanıcı bu süre içerisinde herhangi bir işlem yapmadan beklesin.
Değerli önerilerin için ayrıca teşekkür ederim.
Saygılarımla....
asıl bu nazik tutumun için ben teşekkür ederim.vipaydin yazdı:a.s
Cevabın için teşekkür ederim sevgili aslangeri.
Peki bu noktada bana önerin ne olabilir?
......
Değerli önerilerin için ayrıca teşekkür ederim.
Saygılarımla....
ancak bir önceki mesajımda önerimi belirtmiştim. tekrar edeyim.
öncelikle üzerinde bir animasyon olan form hazırla. (windows dosya kopyalarken çıkan pencere gibi).
sonra
Kod: Tümünü seç
AdoQuery2.SQL.Add('INSERT INTO sonrakitable (alanlarım..)');
AdoQuery2.SQL.Add('SELECT alanlarim FROM öncekitable');
try
//burada animasyon formunu show et //showmodal değil show.
//formun stylı da fsstayontop olsun.
AdoQuery2.ExecSQL;
//burdada animasyon formunu kapat.
except
//eğer bir hata olursa animasyon formu üstte olduğu için hata mesajı görünmeyebilir.
//burdada animasyon formunu kapat.
//e on:exception.... gibisinden giderek hata mesajını yakala. ve kullanıcıya bildir.
end;
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim