SQL komutu içinde Değişken
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 20
- Kayıt: 18 Oca 2005 05:25
- Konum: Kahramanmaraş
- İletişim:
SQL komutu içinde Değişken
Merhaba Arkadaşlar;
Benim bir projem var ve bu projeden bahsetmeme gerek yok.sadece soracağım soru ise sql cümleciği içinde değişken tanımlama ve o değişkeni kullanma nasıl olmaktadır. mesela bir örnek;
SELECT DB(0,'Değişken') ve Değişken kısmını progam içinde kullandırma nasıl olmaktadır.
Bu konuda yardımcı olursanız sevinirim....
Kolay Gelsin....
Benim bir projem var ve bu projeden bahsetmeme gerek yok.sadece soracağım soru ise sql cümleciği içinde değişken tanımlama ve o değişkeni kullanma nasıl olmaktadır. mesela bir örnek;
SELECT DB(0,'Değişken') ve Değişken kısmını progam içinde kullandırma nasıl olmaktadır.
Bu konuda yardımcı olursanız sevinirim....
Kolay Gelsin....
o{-0-}o
- Bil_Bakalım
- Üye
- Mesajlar: 61
- Kayıt: 31 Ara 2004 01:45
- Konum: İzmir
- İletişim:
Sanırım size iki öneri sunabilirim
Bunlardan birincisi ki hiç bir zaman elinizden düşürmemeniz gerekir
zira bu konu ile en azından temel konular sitede oldukça çook
İkinci öneri ise
Bunlardan birincisi ki hiç bir zaman elinizden düşürmemeniz gerekir

İkinci öneri ise
husonet yazdı:Size iki adet link veriyorum burada yazılanları okuyun.
http://www.delphiturkiye.com/index.php?page=dbsql.htm
http://www.delphiturkiye.com/index.php? ... lquery.htm
Kolay gelsin...
-
- Üye
- Mesajlar: 20
- Kayıt: 18 Oca 2005 05:25
- Konum: Kahramanmaraş
- İletişim:
değişkenden kasıt Select içine parametre göndermekse kabaca;
burada query yi açmadan
Value yerine AsInteger / AsString her ne tip ise.
Kod: Tümünü seç
select * from tablo where alan1 = :PARAMETRE
Kod: Tümünü seç
Query1.ParamByName('PARAMETRE').Value := Deger;
Query1.Active := True;
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
TQuery bileşeni kullandığın da, PARAMETERS özelliğini kullanarak datasetin için gerekli değişkenlerini tanımlayabilirsin. Mesela; prmDegisken
Daha sonra SQL özelliğinden sql cümleciğini yazarsın;
Select * from TABLOM where SEHIR= :prmDegisken
burada dikkat edebileceğin bir yer tanımladığın sql değişkeninin önüne : (ikinokta) koymak olabilir. Ama koymadan da kodun çalışabilir.
Diğer ve çok önemli bir nokta; parameterelerini data sete geçiriken mutlaka datasetini kapaman gerekmektedir. Kapadıktan sonra da açmak için 2 komut kullanacaksın; ya OPEN ya da ExecSQL dir. Bu ikisi arasında güzel ve ince bir nokta vardır. Bu da OPEN komutunu tablondan sadece SELECT gibi herhangi bir kayıt değişikliği olmayan komutlar için çağırmalısın, ExecSQL 'i ise tablon üzerinde Kayıt, Güncelleme gibi işlemler yapacaksan çağırmalısın
aşağıda bununla ilgili ufak bir kod parçacığı yapıştırıyorum:
Daha sonra SQL özelliğinden sql cümleciğini yazarsın;
Select * from TABLOM where SEHIR= :prmDegisken
burada dikkat edebileceğin bir yer tanımladığın sql değişkeninin önüne : (ikinokta) koymak olabilir. Ama koymadan da kodun çalışabilir.
Diğer ve çok önemli bir nokta; parameterelerini data sete geçiriken mutlaka datasetini kapaman gerekmektedir. Kapadıktan sonra da açmak için 2 komut kullanacaksın; ya OPEN ya da ExecSQL dir. Bu ikisi arasında güzel ve ince bir nokta vardır. Bu da OPEN komutunu tablondan sadece SELECT gibi herhangi bir kayıt değişikliği olmayan komutlar için çağırmalısın, ExecSQL 'i ise tablon üzerinde Kayıt, Güncelleme gibi işlemler yapacaksan çağırmalısın
aşağıda bununla ilgili ufak bir kod parçacığı yapıştırıyorum:
Kod: Tümünü seç
adoHareketTablosu.Close;
with adoHareketKayit.Parameters do
begin
ParamByName('prmHAREKETYONU').Value := 'G';
ParamByName('prmHAREKETTURU').Value := 'U';
ParamByName('prmURUNMALZEMEID').Value := adoUrunTablosu.FieldByName('ID').AsInteger;
ParamByName('prmMIKTAR').Value := StrToInt(edtMiktar.Text);
ParamByName('prmBIRIM').Value := cmbOlcuBirimi.ItemIndex;
if edtFirma.Text <> '' then
ParamByName('prmFIRMA').Value := edtFirma.Text;
ParamByName('prmBIRIMFIYATI').Value := StrToFloat(edtBirimFiyati.Text);
ParamByName('prmTOPLAMFIYATI').Value := StrToFloat(lblToplamFiyat.Caption);
ParamByName('prmPARABIRIMI').Value := cmbParaBirimi.ItemIndex;
ParamByName('prmTARIH').Value := cmbTarih.DateTime;
if edtAciklama.Text <> '' then
ParamByName('prmACIKLAMA').Value := edtAciklama.Text;
end;
adoHareketKayit.ExecSQL;
- Bil_Bakalım
- Üye
- Mesajlar: 61
- Kayıt: 31 Ara 2004 01:45
- Konum: İzmir
- İletişim:
bende ufak birşey yazmak isterim;
Query1.sql.text := 'Select id,Adi,Soyadi,Numarasi from ogrenci where id=:p';
Query1.params[0].asinteger :=5;
Query1.Open;//Sana bir yada birden fazla satır bilgi getirecek ise kullanırsın Delete,Update işlemleri için Query1.Execsql komutunu kullanırsın
Dönen kaydın bilgisine de
showmessage(inttostr(Query1.fields[0].asinteger)); örneğinde gördüğün gibi ulaşabilirsin Burdaki sıfır birinci kaydı temsil ediyor.
İkinci yol ise Query1.fieldbyname('id').asinteger ile ulaşmaktır.
Sanırım şimdi sql içerisine delphide nasıl parametre alabileceğini ve bunun sonucunda gelen kayda nasıl ulaşabileceğini anlatabilmişimdir.
Bilgi paylaşıldıkça güzeldir.
Query1.sql.text := 'Select id,Adi,Soyadi,Numarasi from ogrenci where id=:p';
Query1.params[0].asinteger :=5;
Query1.Open;//Sana bir yada birden fazla satır bilgi getirecek ise kullanırsın Delete,Update işlemleri için Query1.Execsql komutunu kullanırsın
Dönen kaydın bilgisine de
showmessage(inttostr(Query1.fields[0].asinteger)); örneğinde gördüğün gibi ulaşabilirsin Burdaki sıfır birinci kaydı temsil ediyor.
İkinci yol ise Query1.fieldbyname('id').asinteger ile ulaşmaktır.
Sanırım şimdi sql içerisine delphide nasıl parametre alabileceğini ve bunun sonucunda gelen kayda nasıl ulaşabileceğini anlatabilmişimdir.

-
- Kıdemli Üye
- Mesajlar: 489
- Kayıt: 13 Eyl 2003 09:10
- Konum: istanbul
- İletişim:
bende anladıgım kadarıyla bi el atayım
inşallah yardımcı olur.
button1 clikte adlara
button2 clikte soyada göre listeleyecek proceduredir
Kullanımı
kolay gelsin
inşallah yardımcı olur.
Kod: Tümünü seç
procedure AKL_Listele(Str:string);
var
Sorgu: TQuery;
begin
Screen.Cursor := crHourGlass;
Sorgu := TQuery.Create(nil);
with Sorgu do
begin
Active := False;
//DatabaseName :='';
SQL.Add('SELECT '+Str+'');
SQL.Add('FROM " DBTabloAdi"');
SQL.Add('ORDER BY '+Str+'');
try
Sorgu.Open;
finally
Sorgu.Free;
Screen.Cursor := crDefault;
end;
end;
end;
button2 clikte soyada göre listeleyecek proceduredir
Kullanımı
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
AKL_Listele('ADI');
end;
procedure TForm2.Button1Click(Sender: TObject);
AKL_Listele('SOYADI');
end;
kolay gelsin