String ifadeyi execute etmek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
String ifadeyi execute etmek
Mrb Arkadaşlar,
Delphi için çalışabilecek bir stringi Sqlden çağırıp delphide yazılmış gibi kullanabilir miyiz?
örneğin :
degisken:='Deneme';
select * from '+degisken+' stringini sqlden alıp select * from Deneme haline nasıl dönüştürebilirim.
Saygılar
Delphi için çalışabilecek bir stringi Sqlden çağırıp delphide yazılmış gibi kullanabilir miyiz?
örneğin :
degisken:='Deneme';
select * from '+degisken+' stringini sqlden alıp select * from Deneme haline nasıl dönüştürebilirim.
Saygılar
Re: String ifadeyi execute etmek
Çok mu ilginç bir şey istedim acaba ?
Sadece Sqlden satırı alıp dataset içinde kullanacağım. Bunun yolu yok mu?
Sadece Sqlden satırı alıp dataset içinde kullanacağım. Bunun yolu yok mu?
Re: String ifadeyi execute etmek
Sorunun içinde cevabı var. Neyi yapamıyorsun?
Kod: Tümünü seç
var
QStr: String;
begin
QRY_.Close;
QRY_.Sql.Clear;
QRY_.sql.add('SELECT SORGU FROM TABLO WHERE KAYIT=1');
QRY_.Open;
QStr:=QRY_.fieldvalues['SORGU']+' DENEME'; // DB de 'SELECT * FROM ' olduğunu varsayıyorum.
QRY1_.Close;
QRY1_.Sql.Clear;
QRY1_.sql.add(QStr);
QRY1_.Open;
Re: String ifadeyi execute etmek
Sql Tablosunda veri şu şekilde bulunuyor.
adodataset1.commandtext:='select aciklama from table_1 where id=1';
adodataset1.open;
degisken:='Deneme';
adodataset2.close;
adodataset2.commandtext:=adodataset1.fields[0].value;
// value değeri = select * from '+degisken+' olarak dönüyor. Bunu nasıl select * from Deneme halinde execute edebilirim.
adodataset2.open;
adodataset1.close;adodataset1.commandtext:='select aciklama from table_1 where id=1';
adodataset1.open;
degisken:='Deneme';
adodataset2.close;
adodataset2.commandtext:=adodataset1.fields[0].value;
// value değeri = select * from '+degisken+' olarak dönüyor. Bunu nasıl select * from Deneme halinde execute edebilirim.
adodataset2.open;
Re: String ifadeyi execute etmek
StringReplace fonksiyonuna bakabilirsiniz.
Re: String ifadeyi execute etmek
öncelikle cevaplarınızı paylaştığınız için teşekkür ederim thelvaci.
Sorun şurda. Sql den veriyi çektiğimde veri içinde string halinde değişken taşıyor. Bu stringi alıp olduğu gibi ikinci bir dataset ile değişken değerleriyle kullanmak istiyorum. Dizayntime '+degisken+' ifadesi ile Runtime '+degisken+' ifadesi aynı değil. Runtime '+degisken+' stringine runtime yeni değer atamak istiyorum.
Sorun şurda. Sql den veriyi çektiğimde veri içinde string halinde değişken taşıyor. Bu stringi alıp olduğu gibi ikinci bir dataset ile değişken değerleriyle kullanmak istiyorum. Dizayntime '+degisken+' ifadesi ile Runtime '+degisken+' ifadesi aynı değil. Runtime '+degisken+' stringine runtime yeni değer atamak istiyorum.
Re: String ifadeyi execute etmek
table_1 deki aciklama alanında
yazdığını varsayarsak
Kod: Tümünü seç
SELECT * FROM %DINAMIK%
Kod: Tümünü seç
var
dinamikSorgu:string;
tabloAdi:string;
dinamik1:string;
dinamik2:string;
begin
adodataset1.close;
adodataset1.commandtext:='select aciklama from table_1 where id=1';
adodataset1.open;
dinamikSorgu:=adodataset1.fields[0].value;
//dinamikSorgu değişkeninde 'SELECT * FROM %DINAMIK%' yazıyor
tabloAdi:='table_2';
dinamik1:= StringReplace(dinamikSorgu,'%DINAMIK%' , tabloAdi);
tabloAdi:='table_3';
dinamik2:= StringReplace(dinamikSorgu,'%DINAMIK%' , tabloAdi);
end;
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...
Re: String ifadeyi execute etmek
Değerli meslektaşım unicorn64,
mesele sadece stringreplace değil. sqlde sadece tablo adı değil, aynı zamanda '+ trim(IRSALIYE_SATIRLARI) +' veya IntToStr(Id) veya QuotedStr('deneme') gibi gibi gibi ifadeler var. Tek tek ayrı kontroller yapıp çözmek elbette olur . ama bu iyi bir çözüm değil. Veritabanında bulunan sql cümlesinde delphinin içinde kullandığımız değişkenler var. Bu Sql cümlesini çağırıp runtime da execute etmek istiyoruz. Böyle bir kullanım mümkün mü?
mesele sadece stringreplace değil. sqlde sadece tablo adı değil, aynı zamanda '+ trim(IRSALIYE_SATIRLARI) +' veya IntToStr(Id) veya QuotedStr('deneme') gibi gibi gibi ifadeler var. Tek tek ayrı kontroller yapıp çözmek elbette olur . ama bu iyi bir çözüm değil. Veritabanında bulunan sql cümlesinde delphinin içinde kullandığımız değişkenler var. Bu Sql cümlesini çağırıp runtime da execute etmek istiyoruz. Böyle bir kullanım mümkün mü?
Re: String ifadeyi execute etmek
Selam,
Bence yanlış yoldan ilerlemek istiyorsunuz sayın @emrgln, sizin yapmak istediğiniz, exe içersinde script çalıştırmak gibi geldi bana. Bir query sorgusunda inttostr(id) gibi bir kodun ne işi olur? Bu işi delphi tarafında yapıp dönüşümü sağladıktan sonra query içersine atmalısınız. Çünkü exe bu şekilde bir kullanım imkanı vermez size, id isminde bir değişken exe dosyasında sql satırınızdan önce tanımlanmış bir değişken büyük ihtimalle bunu alıp kullansın gibi bir düşünce sezdim ama ııh olmaz. PHP deseniz tamamda exe dosyada olmaz bence.
Bence yanlış yoldan ilerlemek istiyorsunuz sayın @emrgln, sizin yapmak istediğiniz, exe içersinde script çalıştırmak gibi geldi bana. Bir query sorgusunda inttostr(id) gibi bir kodun ne işi olur? Bu işi delphi tarafında yapıp dönüşümü sağladıktan sonra query içersine atmalısınız. Çünkü exe bu şekilde bir kullanım imkanı vermez size, id isminde bir değişken exe dosyasında sql satırınızdan önce tanımlanmış bir değişken büyük ihtimalle bunu alıp kullansın gibi bir düşünce sezdim ama ııh olmaz. PHP deseniz tamamda exe dosyada olmaz bence.