Update
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Update
İyi akşamlar arkadaşlar.
MyQuery1.RecNo da oluşan sayısı SIRA_NO alanına update nasıl yapabilirim?
procedure TForm2.Button4Click(Sender: TObject);
begin
MyQuery1.Close;
MyQuery1.SQL.Clear;
MyQuery1.SQL.Add ('UPDATE Liste SET SIRA_NO='+IntToStr(MyQuery1.RecNo+'')); Hata alanı
MyQuery1.ExecSQL;
MyQuery1.SQL.Text := 'Select * From Liste';//Tekrar Listele
MyOQuery1.Open;
end;
Hata kodu: ([DCC Error] Unit9.pas(198): E2010 Incompatible types: 'string' and 'Integer')
MyQuery1.RecNo da oluşan sayısı SIRA_NO alanına update nasıl yapabilirim?
procedure TForm2.Button4Click(Sender: TObject);
begin
MyQuery1.Close;
MyQuery1.SQL.Clear;
MyQuery1.SQL.Add ('UPDATE Liste SET SIRA_NO='+IntToStr(MyQuery1.RecNo+'')); Hata alanı
MyQuery1.ExecSQL;
MyQuery1.SQL.Text := 'Select * From Liste';//Tekrar Listele
MyOQuery1.Open;
end;
Hata kodu: ([DCC Error] Unit9.pas(198): E2010 Incompatible types: 'string' and 'Integer')
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: Update
brs yazdı:İyi akşamlar arkadaşlar.
MyQuery1.RecNo da oluşan sayısı SIRA_NO alanına update nasıl yapabilirim?
procedure TForm2.Button4Click(Sender: TObject);
begin
MyQuery1.Close;
MyQuery1.SQL.Clear;
MyQuery1.SQL.Add ('UPDATE Liste SET SIRA_NO='+IntToStr(MyQuery1.RecNo+'')); Hata alanı
MyQuery1.ExecSQL;
MyQuery1.SQL.Text := 'Select * From Liste';//Tekrar Listele
MyOQuery1.Open;
end;
Hata kodu: ([DCC Error] Unit9.pas(198): E2010 Incompatible types: 'string' and 'Integer')
MyQuery1.SQL.Add ('UPDATE Liste SET SIRA_NO='+(IntToStr(MyQuery1.RecNo)));
şeklinde denermisin,,
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Re: Update
Sayın xozcanx İlginiz için çok teşekkür ederim "delphi türkiye" bugün son kez giriş yapacaktım açmış olduğum yaklaşık 12 konuya 3 cevap alabildim benim gibi diğer konu açmış olan arkadaşlarda'da aynı sıkıntı olduğunu düşünüyorum cevabınız için tekrar teşekkür ederim...
Kod çalıştı ama sanırım bende bir hata var SQL komutu hiç kullanmadım desem yanlış olmaz yapmak istediğim
MyQuery de seçili olan satır Recno yu SIRA_NO alanına update etmek istiyorum fakat kod tüm kayıtlara sıra numaralarını 0 olarak update yapıyor tekrar yardımcı olursanız sevinirim...
Kod çalıştı ama sanırım bende bir hata var SQL komutu hiç kullanmadım desem yanlış olmaz yapmak istediğim
MyQuery de seçili olan satır Recno yu SIRA_NO alanına update etmek istiyorum fakat kod tüm kayıtlara sıra numaralarını 0 olarak update yapıyor tekrar yardımcı olursanız sevinirim...
xozcanx yazdı:brs yazdı:İyi akşamlar arkadaşlar.
MyQuery1.RecNo da oluşan sayısı SIRA_NO alanına update nasıl yapabilirim?
procedure TForm2.Button4Click(Sender: TObject);
begin
MyQuery1.Close;
MyQuery1.SQL.Clear;
MyQuery1.SQL.Add ('UPDATE Liste SET SIRA_NO='+IntToStr(MyQuery1.RecNo+'')); Hata alanı
MyQuery1.ExecSQL;
MyQuery1.SQL.Text := 'Select * From Liste';//Tekrar Listele
MyOQuery1.Open;
end;
Hata kodu: ([DCC Error] Unit9.pas(198): E2010 Incompatible types: 'string' and 'Integer')
MyQuery1.SQL.Add ('UPDATE Liste SET SIRA_NO='+(IntToStr(MyQuery1.RecNo)));
şeklinde denermisin,,
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: Update
Selam, neden böyle bişi yapmak istiyorsunuz onu anlamadım ben. Sonuçta her filtre veya index (sıralama) kullandığınızda değişicek recno. Rec no yu kaydetmek istersenizde şöyle bir yol izleyebilirsiniz. Önce liste tablosunu bir query ile çekin, sonra bu query i while not xxx.eof ile döngüye sokun, her döngü dede update işlemini ona göre yapın istediğiniz olur, Örneklemek gerekirse.
önce listever isminde bir query ile verilerinizi çekin,
sonra donguye sokup her satırı update edin.
bu arada liste tablonuzda ID ve SIRA_NO şeklinde alanlarınız olduğunu varsayıyorum. Eğer yoksa WHERE SIRA_NO='+QLISTEVERSIRA_NO.ASINTEGER da diyebilirsiniz ama doğru çalışırmı bilmiyorum zira o andaki recno ile aynı olan önceki bir sıra_no var ise ortalık epey bir karışır ki %99 olacaktır zaten onu engellemek için önce
gibi bir kodu çalıştırmak mantıklı olacaktır. Ama yinede bunu niçin kullanıcaksınız merak ettim doğrusu.
önce listever isminde bir query ile verilerinizi çekin,
Kod: Tümünü seç
QLISTEVER.SQL.ADD('SELECT * FROM LISTE');
Kod: Tümünü seç
QLISTEVER.FIRST;
WHILE NOT QLISTEVER.EOF do begin
QGUNCELLE.SQL.ADD('UPDATE lıste SET SIRA_NO='+INTTOSTR(QLISTEVER.RECNO)+' WHERE ID='+QLISTEVERID.ASINTEGER);
QLISTEVER.NEXT;
end;
Kod: Tümünü seç
QGUNCELLE.SQL.ADD('UPDATE lıste SET SIRA_NO=0');
Re: Update
selam esistem teşekkür ederim belkide yanlış izliyor olabilirim bilemiyorum aslında yapmak istediğim şey dbgrid deki her hangi bir satırları yukarı veya aşağıya taşımak
esistem yazdı:Selam, neden böyle bişi yapmak istiyorsunuz onu anlamadım ben. Sonuçta her filtre veya index (sıralama) kullandığınızda değişicek recno. Rec no yu kaydetmek istersenizde şöyle bir yol izleyebilirsiniz. Önce liste tablosunu bir query ile çekin, sonra bu query i while not xxx.eof ile döngüye sokun, her döngü dede update işlemini ona göre yapın istediğiniz olur, Örneklemek gerekirse.
önce listever isminde bir query ile verilerinizi çekin,sonra donguye sokup her satırı update edin.Kod: Tümünü seç
QLISTEVER.SQL.ADD('SELECT * FROM LISTE');
bu arada liste tablonuzda ID ve SIRA_NO şeklinde alanlarınız olduğunu varsayıyorum. Eğer yoksa WHERE SIRA_NO='+QLISTEVERSIRA_NO.ASINTEGER da diyebilirsiniz ama doğru çalışırmı bilmiyorum zira o andaki recno ile aynı olan önceki bir sıra_no var ise ortalık epey bir karışır ki %99 olacaktır zaten onu engellemek için önceKod: Tümünü seç
QLISTEVER.FIRST; WHILE NOT QLISTEVER.EOF do begin QGUNCELLE.SQL.ADD('UPDATE lıste SET SIRA_NO='+INTTOSTR(QLISTEVER.RECNO)+' WHERE ID='+QLISTEVERID.ASINTEGER); QLISTEVER.NEXT; end;
gibi bir kodu çalıştırmak mantıklı olacaktır. Ama yinede bunu niçin kullanıcaksınız merak ettim doğrusu.Kod: Tümünü seç
QGUNCELLE.SQL.ADD('UPDATE lıste SET SIRA_NO=0');
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: Update
tekrar selam, siz bence ne yapmak istediğinizi düzgün anlatamadınız ve olayı kavrayamadınız. Satırları aşağı ve yukarı taşımak değilde kayıtlarımın sıralarını değiştirmek istiyorum deseniz daha doğru olur, yani adına göre a dan z ye veya z den a ya veya adına göre a dan z ye ama soyadına göre z den a ya dizmek istiyorum deseniz bu iş çok kolay olur. Yoksa dbgrid de satırı aşağıya alma veya 2 üste alma gibi bi olay yoktur. ORDER BY komutu sizin işinizi çok güzel çözer, "ORDER BY SQL" yazıp google da aratın, kısaca sıralama demektir, kayıtlarınızı istediğiniz sıraya dizmeye yarar, dbgrid de zaten sıralı kayıtlarınızı gösterir. SQL komutudur. ASC ve DESC olarak (Artan ve Azalan) olarak kullanılır. SQL sorgusunda da where satırından sonra kullanılır (where var ise tabi yoksa direk yazılabilir) örnek ;
veya
veya
vs.vs. deneyin görün.
kısaca siz bence SQL çalışın biraz, nedir ne değildir, nasıl kullanılır, yazım kuralları nelerdir vs.vs.
Kod: Tümünü seç
SELECT kod, adi, soyadi FROM TABLO
WHERE kod>5
ORDER BY adi, soyadi
Kod: Tümünü seç
SELECT kod, adi, soyadi FROM TABLO
ORDER BY adi, soyadi
Kod: Tümünü seç
SELECT kod, adi, soyadi FROM TABLO
ORDER BY adi ASC, soyadi DESC /*adi artan sıralamada soyadi azalan siralamada getir*/
kısaca siz bence SQL çalışın biraz, nedir ne değildir, nasıl kullanılır, yazım kuralları nelerdir vs.vs.
-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
Re: Update
- Öncelikle buradaki hata; MyQuery1.Close; yaptığın için MyQuery1.RecNo gidiyor!!! Query kapalı iken ( içerisinde hiçbir kayıt yokken ) Kayıt Numarasını almaya çalışıyorsun...brs yazdı:MyQuery1.Close;
MyQuery1.SQL.Clear;
MyQuery1.SQL.Add ('UPDATE Liste SET SIRA_NO='+IntToStr(MyQuery1.RecNo+'')); Hata alanı
MyQuery1.ExecSQL;
MyQuery1.SQL.Text := 'Select * From Liste';//Tekrar Listele
MyOQuery1.Open;
- Sıralama için basit olarak tablona integer tipinde Sira alanı ekle, formda yukarı aşağı butonu tıklandığında Sira alanını güncelle...
- Sorguna da ORDER BY Sira satını ekle...
Re: Update
Teşekür ederim Yusuf şimşek...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...