sorgu çalıştırma karmaşası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

selman yazdı:s.a aslında kardeş duruma göre değişir yerine göre ibquery yerine görede ibdataset kullanılmalı ben mesela her ikisinide kullanıyorum birde şunu unutmayın ki ibquery salt okunur sonçlar döndürdüğü için onda herhangi bir oynama yapamazsınız.
ibupdatesql
type
Tform1 = class(Tform)
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Kod: Tümünü seç

yok ben öğrenemiyecem heralde bu interbase bileşenlerini
zamanında bende böyle demiştim..ama yanılgıya uğramışım :)

Öğrenilmeyecek diye bir şey yok..Biraz formu karıştır.Örnekleri değerlendir.Kendini zorla.İnan ki bu forum çok kaliteli.. Kıymetini bilmek gerekir..

iyi günler...
Kullanıcı avatarı
miskin
Üye
Mesajlar: 103
Kayıt: 26 Tem 2005 02:02
Konum: Gavuristan

Mesaj gönderen miskin »

techmaster yazdı:hocam veriyorum ya sql texti işte insertsql ile :?
ama ben insertsql sorgusunu yerine getirmesini isterken o gidip selectsql'i çalıştırmaya çalışıyor(doğru anladıysam)
Tekrar anlatmaya calisayim.
Select le veritabanindan degerler aliniyor. Eger Transaction'un bazi özellikleri aciksa (Konkurenz falan, forum da aranabilir) senin aldigin degerleri baskalari degistiremiyor. ve vt ye bildiriyorsun bunlari benim icin sakla gibi, ama sen Open yapmisin secmemesin. Hata burda.
degerleri aldigin dataset icerisnde bu degerleri silebilir degistirebilirsin. degistirip silebilmek icin insertsql updatesql ve deletesql kullanabilirsin.
Ama senin amacin sadece degisiklik yapmak yada yenisini eklemek. veritabanindan bilgi almana gerek yok gibi görünüyor. o zaman SQLtext de insertinto deyip execsql gönderebilirsin.

Eger konu baskalari tarafindan ilgi cekiyorsa bu konu üzerinde bir yaziyi eksik türkcemle cevirebilirim.
miskin
Ve Tanri, bütün kullarini davul edecek :)
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Merhaba bende senin gibi bu konuyu öğrenemeyeceğimi söylemiştim ve seninkine benzer sorunlarım vardı.Aynı arkadaşlar banada pes etmememi tembihleyerek bu işi öğrettiler.Allah hepsinden razı olsun.Sende pes etme ve şu linki bir incele.
viewtopic.php?p=54468&highlight=#54468
Kullanıcı avatarı
techmaster
Üye
Mesajlar: 52
Kayıt: 08 Ağu 2003 03:24
Konum: Adana

Mesaj gönderen techmaster »

arkadaşlar yardımlarınız için teşekkürler...artık ibdataseti öğrenebilmem için daha falzla kasmam gerektiğini anladım... :?
acaba hata sadece bir tane ibdataset ile tüm işlemleri yapmaya çalışmamdamı..siz yaparken nasıl çalışıyorsunuz...ibdatasetin yanında ibquery,ibsql vs. kullanıyormusunuz...

tekrar teşekkürler...iyi çalışmalar...
master of technology

http://www.cuemot.org
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Ben şöyle yapıyorum;
Ekle,Düzelt,Sil işlemlerini IBDataset ile yapıyorum.Çünkü hazır olarak bu SQL leri oluşturuyor zaten..
,Listeleme olaylarında IBQuery kullanıyorum...

iyi günler...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
ben
1.ibdataseti forma koyuyorum.
2.ibdatasetin database ve trasnaction unu bağlıyorum.
3.ibdatasetin selectsql ine select ile başlayan sql imi yazıyorum ilgili tablo/lar dan kayıtları getiriyorum.
4.ibdatasetin üzerine iki kere tıklayarak fieldları ekliyorum.
5.ibdatasetin üzerine sağ tıklayıp dataset editor komutunu veriyorum.
6.dataset editorde(birinci tabda) iki tane field listesi var. soldaki listeden tablomdaki primarykey olan alanı seçiyorum.
7.sağdaki alanda ise edit ve insert yaptığımda etkilencek olan alanları seçiyorum.
8.generate sql düğmesine tıklıyorum.
9.dataset editorun ikinci tabına (SQLs )geçiyorum.
10.modifysql, insertsql,deletesql ve refresh sql kodlarını kontrol ediyorum.
11.program içinde ibdataset in sql lerini değiştirmiyorum.

Not:ibdataset ile filitreleme yapacağım durumlarda delphini içinden select sqli yazarken ona göre parametreleri ayarlıyorum.
ikinci Not: ibdataset ile direk tablodan değil hazırlamış olduğum sp lerden kayıt çekiyorum. spye parametre vererek filitreleme işlemlerini de halletmiş oluyorum.
örnek
selectsqlkodu

Kod: Tümünü seç

select * from FATURAMALZEMESEC(:FATURAID)
oncede ntanımladığım bu procedure ile faturaid si girilen faturadaki malzemeleri gösteriyorum. bunun modify ve insert sqlleride aşağıdaki gibi.
Modifysql

Kod: Tümünü seç

UPDATE FATURAMALZEME
SET     
      MALZEMEKOD = :MALZEMEKOD,
      MIKTAR = :MIKTAR,
      FIYAT = :FIYAT,
      BIRIMID = :BIRIMID,
      AGIRLIK = :AGIRLIK,
      ACIKLAMA = :ACIKLAMA
WHERE (ID = :ID)
insertsql

Kod: Tümünü seç

INSERT INTO FATURAMALZEME (FATURAID,    FATURANO,
    FATURATARIHI,    MALZEMEKOD,    TANITIMKOD,
    FBIRIMID,    MIKTAR,    FIYAT,    BIRIMID,
    AGIRLIK,    ACIKLAMA)  VALUES (
    :FATURAID,    :FATURANO,    :FATURATARIHI,
    :MALZEMEKOD,    :TANITIMKOD,
    :FBIRIMID,    :MIKTAR,    :FIYAT,    :BIRIMID,    :AGIRLIK,
    :ACIKLAMA);
deletesql

Kod: Tümünü seç

DELETE FROM FATURAMALZEME
WHERE ID=:ID
böylelikle ben ibdataseti kullanırken open komutunu verdiğim zaman
select sql de yazılı olan kodlar çalışıyor.
insert dediğim zaman insersql delete dediğim zaman delete sql edit dediğim zamanda modify sqldeki kodlar çalışıyor.
bu sql leri program içerisinden değiştirmiyorum.
paşa paşa ibdataset leri kullanıyorum.

umarım açıklayıcı olmuştur.
kolay gelsin.
En son aslangeri tarafından 18 Ağu 2005 08:02 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
techmaster
Üye
Mesajlar: 52
Kayıt: 08 Ağu 2003 03:24
Konum: Adana

Mesaj gönderen techmaster »

aslangeri hocam çok sağolun...şu yazdıklarınız çok makbule geçti...biraz kızmışsınız ama napalım acemiyiz işte yöntem yordamı öğrenmeye çalışıyoruz. :D

formdan datasetteki sorguları değiştirmem demişsiniz...
peki şöyle bişey olsa nasıl yapacaksınız..mesela bi yerde

Kod: Tümünü seç

select * from GRUP ORDER BY GRUP_ADI ASC
aynı formda başka bi yerde

Kod: Tümünü seç

SELECT GRUP.GRUP_ADI,GRUP.GRUP_KURULUS_YILI,
ALBUM.ALBUM_ADI,ALBUM.ALBUM_TARIHI,ALBUM.ALBUM_CD
FROM GRUP INNER JOIN ALBUM ON
GRUP.GRUP_ID = ALBUM.ALBUM_GRUP_ID
WHERE ALBUM.ALBUM_ADI='+quotedstr(treeview2.selected.Text)
kullanmanız gerekecek..sql i değiştirmeden nasıl çalıştıracaksınızki bunu...

iyi çalışmalar...
master of technology

http://www.cuemot.org
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
bu iki sql in sonuçlarını aynı gridde gösterdiğini söyleme bana.
ki zaten başka yerde demişsin.
madem başka yerde kullanıyorsun başka bir ibdataset(yade yerine göre ibquery)kullanabilirsin(1).
ikincisi sp kullanabilirsin.
aldığı parametrelere göre farklı sqller çalıştıran bir sp yaptığın zaman tek yapman gereken sp ye gönderdiğin parametereyi değiştirmek olacak.
:wink:
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
techmaster
Üye
Mesajlar: 52
Kayıt: 08 Ağu 2003 03:24
Konum: Adana

Mesaj gönderen techmaster »

hah..aslangeri hocam çok sağolasın aradığım cevap buydu...
aslangeri yazdı: madem başka yerde kullanıyorsun başka bir ibdataset(yade yerine göre ibquery)kullanabilirsin(1).
demekki formda birden fazla dataset kullanmayı fazla takmayabilirmişim...

arkadaşlar hepinize çok teşekkür ediyorum...iyi çalışmalar...
master of technology

http://www.cuemot.org
Cevapla