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: Mucibirahman İLBUĞA (mucip.ilbuga@gmail.com)
Date: Thu 11 Jan 2007 - 14:42:14 GMT


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 Ö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,AdresCaddeSokakAd,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.