Delphi 8 .NET' de Veritabanında arama yapamıyorum.

Delphi .net ve .net ile ilgili konuları buraya yazabilirsiniz.
Cevapla
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Delphi 8 .NET' de Veritabanında arama yapamıyorum.

Mesaj gönderen Gold_Lady »

Merhaba, bu kod ile firebird veritabanını .NET e aktarıp explorer üzerinde görüntüleyebiliyorum.

Kod: Tümünü seç

procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
var
MyConnect:FBConnection;
MyAdapter:FBDataAdapter;
MyDataset:DataSet;
begin
//Bağlantıyı oluştur
MyConnect:=FBConnection.Create;
MyConnect.ConnectionString:=('database=C:\musteridata.fdb;assembly=Borland.Data.Interbase,Version= 2. 0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b;ve ndor client=gds32.dll;provider=Interbase;username=SYSDBA;password =masterkey');
//Tabloya bağlan
MyAdapter:=FBDataAdapter.Create('Select * From ANKARA',MyConnect);
//Seçilen Tabloyu DataSete Aktar
MyDataset:=Dataset.Create;
MyAdapter.Fill(MyDataset,'ANKARA');
MyGrid.DataSource:=MyDataset.Tables['ANKARA'];
if not (IsPostBack) then
MyGrid.DataBind;
end;
Integer alanlarda aramada yapabiliyorum ancak, String bir alanda arama yapmak istediğimde 'Column Unknown' şeklinde bir hata alıyorum explorer üzerinde.

String bir alanda arama yapmak istediğimde;

Kod: Tümünü seç

MyAdapter:=FBDataAdapter.Create('Select * From ANKARA WHERE ADISOYADI LIKE' + '%' + textbox1.text + '%'  ,MyConnect);
bu kodu kullanmam gerek sanıyorum ama 'Column Unknown' hatasını alıyorum. Sorun nedir, neyi yanlış yapıyorum?

Birde bu çevirmeler var mesela Quotedstr bunun .NET deki karşılığı nedir?
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

textbox1.text i filed olarak görüyor sanırım..

Kod: Tümünü seç

MyAdapter:=FBDataAdapter.Create('Select * From ANKARA WHERE ADISOYADI LIKE' + '''%' + textbox1.text + '%'''  ,MyConnect);
DeveloperToolKit

..::|YeşilMavi|::..
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Mesaj gönderen Gold_Lady »

Olmuyor, bu seferde datagrid boş çıkıyor.

NET te sql.clear' ın karşılığı var mıdır yada fbcommand nesnesinde önceki SQL kodunu temizlemeye gerek var mı?

Ya bu ne karışık bir olay neden Delphi Win32 uygulamaları gibi yapmadılarsa. :D
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

bence sql string inizi ekrana bastırıp sorun olup olmadığını kontrol edin :!:
DeveloperToolKit

..::|YeşilMavi|::..
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Mesaj gönderen Gold_Lady »

Pek anlamadım dediğinizi, zaten NET olayınıda pek anlamıyorum. :D

Nasıl yapacağım dediğiniz şeyi biraz açıklar mısınız yada örnek verebilir misiniz?
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Kod: Tümünü seç

sSql := 'Select * From ANKARA WHERE ADISOYADI LIKE ' + '''%' + textbox1.text + '%''';
Response.Write(sSql);
bu şekilde sql cümlesini ekrana bastırın ve ibexpert vs gibi bir tool da deneyin. eğer kayıt dönerse sorun sql de değildir..
bu arada datagrid boş çıkıyorsa where deki şarta göre kayıtlar eşleşmiyor olabilir. çünkü önceki msjınızda integer alanarda arama yapabildiğinizi söylemişsiniz..
DeveloperToolKit

..::|YeşilMavi|::..
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Mesaj gönderen Gold_Lady »

Teşekkür ederim, ancak eminim arama sonucu boş değil. FDB dosyasında olan bir kayıtı aradım, bildiğim bir kayıt, yok boş döndü.

Hatta şöyle yapınca buluyor, direk SQL cümlesine yazıyorum.

MyAdapter:=FBDataAdapter.Create('Select * From ANKARA WHERE ADISOYADI LIKE' + '''%MEHMET%''' ,MyConnect);

Bu şekilde yapınca, ANKARA tablosundaki içinde mehmet kelimesi geçen tüm müşterileri veriyor.

Delphi 2005 Pro bendeki sürüm. Bir bug yada bu kullandığım FirebirdNEtProvider' in bir bugu olabilir mi? Duydunuz mu daha once boyle bir sorun.
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Gold_Lady yazdı: MyAdapter:=FBDataAdapter.Create('Select * From ANKARA WHERE ADISOYADI LIKE' + '''%MEHMET%''' ,MyConnect);

Bu şekilde yapınca, ANKARA tablosundaki içinde mehmet kelimesi geçen tüm müşterileri veriyor.
bu sonuç veriyorsa sorun ne? :D
DeveloperToolKit

..::|YeşilMavi|::..
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Mesaj gönderen Gold_Lady »

:D Güzel soru.

İyide hep Mehmet ismindeki müşterileri arayacak değilimya.

Textboxa yazılan müşterileri arama istiyorum mesela. SQL koduna direk arama yapmak istedğim ismi yazınca sorun yok ama textbox girince olaya olmuyor.
yani mehmet yerine olması gereken şekilde textbox yazılınca sorun çıkıyor.

Aksi gibi bilgisayarımda bir sorun var onu düzeltemeye çalışıyorum. Delphide derleme yapınca kilitlenip kalıyor. Sorunu çözüyüm daha ayrıntılı bilgi vereceğim.
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

tabi isteğinizde son derece haklısınız :idea:
ilk mseajınızdaki sql kodunu değiştirerek kodu aşağıdaki hale getirin.

Kod: Tümünü seç

....
....
MyGrid.DataSource:=MyDataset.Tables['ANKARA'];
// if not (IsPostBack) then
MyGrid.DataBind;
end;
if not (IsPostBack) then devrede olduğunda textbox da değişiklik yapıp sayfa post back olduğunda DataBind yapmaz. Kısaca Databind sayfa ilk yüklenirken yapılıyor daha sonra yapılmıyor bu durumda da grid de kayıt görmemek normal.
DeveloperToolKit

..::|YeşilMavi|::..
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Mesaj gönderen Gold_Lady »

Cevaplar için teşekkür ederim. Son verdiğiniz kodu maalesef deneyemeyeceğim şu an iş yerindeyim ve kullandığım bilgisayar çökmek üzere :( Delphiyi açınca kilitlenip kalıyor. Ancak akşam evde deneyebilirim, evde internet bağlantım olmadığı içinde sonucu yarın bildiririm.

İlgi ve alakanız için çok teşekkür ederim.
Gold_Lady
Üye
Mesajlar: 142
Kayıt: 03 Nis 2006 08:39
Konum: İş Yerinden :)
İletişim:

Mesaj gönderen Gold_Lady »

Merhaba.
Olmadı maalesef...

Kodlarla oynadım bileşen özelliklerini inceledim, bu neymiş bu nasılmış diye bakarken fb bileşenlerinin birbirine bağlanabildiğini gördüm.

sonra bu kod çıktı ortaya;

Kod: Tümünü seç

procedure TWebForm1.Button2_Click(sender: System.Object; e: System.EventArgs);
begin
FBCOMMAND1.CommandText:= ('SELECT  * FROM ANKARA WHERE ADISOYADI LIKE'+ '''%' +TEXTBOX1.Text+'%'''  );
fbdataadapter1.Fill(Dataset1,'ANKARA');
mygrid.dataSource:=Dataset1.Tables['ANKARA'];
MyGrid.DataBind;
end;
Çalıştırdım kodu yine olmadı. Sonra dün yazdığım bug olma ihtimali geldi. Delphi 2005 için Update1 i indirdim kurdum. Bu sefer Delphi açılırken hata vermeye başladı ama kod çalıştı. :D

Sorun halloldu yani.

Birde ben bir şey daha soruyum. Swf uzantılı flash dosyalarını asp.net uygulamasında hangi bileşenle form üzerinde gösterebilirim?

Teşekkür ederim...
Cevapla