RE: [Linux-programlama] Firebird SQL ile boş, Null değer kaydetme?

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Yaşar ÖZANLAĞAN (yasarozanlar@gmail.com)
Date: Thu 11 Jan 2007 - 15:51:08 GMT


SQL ile gidecekseniz

 

AdoTable1.fields[0].text yerine

 

ADOTable1.FieldByName('tckimlikno').AsString

 

Kullanabilirsiniz. Böylece fieldin veri tipini de tanıtmış olursunuz.

 

Kolay gelsin

 

  _____

From: linux-programlama-bounces@liste.linux.org.tr
[mailto:linux-programlama-bounces@liste.linux.org.tr] On Behalf Of
Mucibirahman İLBUĞA
Sent: Thursday, January 11, 2007 4:42 PM
To: linux-programlama@liste.linux.org.tr
Subject: Re: [Linux-programlama] Firebird SQL ile boş, Null değer kaydetme?

 

Selamlar,

İlginize teşekkürler. Ancak mantık olarak SQL dışına çıkmak istemediğimden
tüm işlemleri SQL cümleleri ile yapmanın ilerde kompanent değişimlerinde
sorun yaşatmayacağını düşünüyorum. İncelediğim çoğu kaynak da böyle
söylüyor.

 

Ancak denemelerimde garip bir sonuç ile hallettim:

Gönderdiğim kodda

 

ADOTable1.fieldvalues['secmen']

 

yerine

 

ADOTable1.fields[0].text

 

değerini kullandığımda boş hücrelerde problem yaşamadım. İşlem halloldu
yani. Ama neden iki komut arasında fark olduğunu anlamadım?

 

Teşekkürler,

Mucip:)

Özgürlük için http://www.pardus.org.tr/

----- Original Message -----

From: Yaşar <mailto:yasarozanlar@gmail.com> ÖZANLAĞAN

To: linux-programlama@liste.linux.org.tr

Sent: Thursday, January 11, 2007 3:41 PM

Subject: RE: [Linux-programlama] Firebird SQL ile boş, Null değer kaydetme?

 

 

Gönderdiğiz örnekte Edit1 nesnesine isim atarken veritabanındaki değer null
ise variant'a çeviremediği için hata veriyor. Örneğinizde daha fazla kod
yazmayı gerektiren bir yol tercih etmişsiniz, bana göre.

Sizin örneğinine bakarak kendi kullandığım mssql deki müşteri dosyasından
firebird deki secmen dosyasına bilgi aktarmak için 2 adotable nesnesi
oluşturdum. SecTB firebird üzerideki yeni tablo, Adotable1 ise mssqldeki
müşteri dosyası. Table nesnesi içerisine fieldleri ekledim ve denedim.
Umarım işinize yarar.

 

Yaşar ÖZANLAĞAN

 

 

procedure TMainF.SpeedButton1Click(Sender: TObject);

begin

     DM.ADOTable1.Open;

     DM.SecTB.Open;

     DM.ADOTable1.First;

     while not DM.AdoTable1.Eof do

     Begin

          DM.SecTB.Insert;

          DM.SecTBtckimlikno.Value := DM.ADOTable1MKOD.Value;

          DM.SecTBsecmenno.Value := 0;

          DM.SecTBad.Value := DM.ADOTable1ISIM.Value;

          DM.SecTBsoyad.Value := DM.ADOTable1SOYAD.Value;

          DM.SecTBilksoyad.Value := '';

          DM.SecTBanaadi.Value := DM.ADOTable1ANAADI.Value;

          DM.SecTBbabaadi.Value := DM.ADOTable1BABAADI.Value;

          DM.SecTBcinsiyet.Value := '';

          DM.SecTBdogumyeri.Value := DM.ADOTable1DYERI.Value;

          DM.SecTBnufusil.Value := DM.ADOTable1NFIL.Value;

          DM.SecTBnufusilce.Value := DM.ADOTable1NFILCE.Value;

          DM.SecTBadresilad.Value := DM.ADOTable1SEHIR.Value;

          DM.SecTBadresilcead.Value := DM.ADOTable1ILCE.Value;

          DM.SecTBadresmuhtarad.Value := '';

          DM.SecTBadrescaddesokakad.Value := DM.ADOTable1ADRES.Value;

          DM.SecTBadreskapino.Value := '';

          DM.SecTBadresdaireno.Value := '';

          DM.SecTBadresapt.Value := '';

          DM.SecTB.Post;

          Edit1.Text:= DM.ADOTable1UNVAN.Value;

          application.ProcessMessages;

          DM.AdoTable1.Next;

     End;

     DM.ADOTable1.Close;

     DM.SecTB.Close;

end;

 

  _____

From: linux-programlama-bounces@liste.linux.org.tr
[mailto:linux-programlama-bounces@liste.linux.org.tr] On Behalf Of
Mucibirahman İLBUĞA
Sent: Wednesday, January 10, 2007 2:09 PM
To: linux-programlama
Subject: [Linux-programlama] Firebird SQL ile boş, Null değer kaydetme?

 

Selamlar,

Win üzerinde Access ile tutulan verileri Firebird 1.5 üzerine Delphi ile
aktarmaya çalışıyorum. Ancak garip bir durum var:

 

Aşağıdaki kodda kaynak alan mesela "KapiNo" boş ise ;

"Could not convert variant of type (null) into type (string)"

Hatası alıyorum... ADO, alanın içeriği boş ise Null dönderiyor anlaşılan. Bu
sorunu SQL içerisinden halledebilir miyiz? Yoksa Delphide "if null" gibi bir
çözüm mü yapmalıyız?

 

Teşekkürler,

Mucip:)

 

Özgürlük için http://www.pardus.org.tr/

 

****************************************************************

procedure TForm1.Button3Click(Sender: TObject);
begin
AdoTable1.First;
while not AdoTable1.Eof do
  Begin
  IBQuery1.Close;
  IBQuery1.SQL.Clear;
  IBQuery1.SQL.add('Insert into Secmen(TCKimlikNo,SecmenNo,Ad,Soyad,');
  IBQuery1.SQL.add('IlkSoyad,AnaAdi,BabaAdi,Cinsiyet,DogumYeri,');
{DogumTarihi,}
 
IBQuery1.SQL.add('NufusIl,NufusIlce,AdresIlAd,AdresIlceAd,AdresMuhtarAd,Adre
sCaddeSokakAd,KapiNo,DaireNo,Bolge) values ');
  IBQuery1.SQL.add('(''' + ADOTable1.FieldValues['TCKimlikNo'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['SecmenNo'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['Ad'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['SoyAd'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['IlkSoyAd'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['AnaAdi'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['BabaAdi'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['Cinsiyet'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['DogumYeri'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['NufusIl'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['NufusIlce'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['AdresIlAd'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['AdresIlceAd'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['AdresMuhtarAd'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['AdresCaddeSokakAd'] + ''',
');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['KapiNo'] + ''', ');
  IBQuery1.SQL.add('''' + ADOTable1.FieldValues['DaireNo'] + ''', ');
  IBQuery1.SQL.add('''TEST'');');
  IBQuery1.Prepare;
  IBQuery1.ExecSQL;
  Edit1.Text:= ADOTable1.FieldValues['No'];
  application.ProcessMessages;
  AdoTable1.Next;
  End;
IBDataset1.Close;
IBDataset1.Open;
//ADOTable1.FieldValues['HareketFisNo']
end;

 

****************************************************************

 

 

 

 

 

  _____

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.