Firebird ssequence/generator ya da insert sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
PROGRAMADOR
Üye
Mesajlar: 239
Kayıt: 04 Oca 2008 01:53
Konum: Karşıyaka/İzmir

Firebird ssequence/generator ya da insert sorunu

Mesaj gönderen PROGRAMADOR »

Merhaba arkadaşlar,

Firebird embedded db ve onun içinde tablo oluşturmak için kullandığım kodlarım şöyle:

Kod: Tümünü seç

      with FDPhysFBDriverLink1 do begin
        Release;
        VendorLib:=App_path+'\fbembed.dll';
        DriverID:='FB';
      end;
      with FDConnection1 do begin
        Params.Clear;
        Params.Add('DriverID=FB');
        Params.Add('Database='+App_path+DBPath);
        Params.Add('Protocol=Local');
        Params.Add('User_Name=sysdba');
        Params.Add('Password=masterkey');
        Params.Add('CharacterSet=UTF8');
        Params.Add('ExtendedMetadata=True');
        Params.Add('CreateDatabase=Yes');
        Connected:=True;
      end; //db sorunsuz oluşturuluyor

      //tabloları oluştur
      With FDQuery1 do
      begin
        Active     := False;
        Connection := FDConnection1;
        SQL.Clear;
        SQL.Add( 'CREATE TABLE SETTINGS ( ' );
        SQL.Add( 'ID BIGINT NOT NULL PRIMARY KEY' );
        SQL.Add( ', CONFKEY    VARCHAR(150) ' );
        SQL.Add( ', CONFVALUEEN VARCHAR(1000) ' );
        SQL.Add( ', CONFVALUETR VARCHAR(1000) ' );
        SQL.Add( ', CONFVALUEES VARCHAR(1000) ' );
        SQL.Add( ' );' );
        ExecSQL;

        SQL.Clear;
        SQL.Add( 'CREATE SEQUENCE SETTINGS_ID_SEQ;');
        ExecSQL;

        SQL.Clear;
        SQL.Add('ALTER SEQUENCE SETTINGS_ID_SEQ RESTART WITH 1;');
        ExecSQL;

        SQL.Clear;
        SQL.Add('CREATE TRIGGER SETTINGS_ID_TRG FOR SETTINGS');
        SQL.Add('ACTIVE BEFORE INSERT POSITION 0');
        SQL.Add('AS BEGIN');
        SQL.Add('IF ((new.ID IS NULL) OR (new.ID <= 0)) THEN');
        SQL.Add('BEGIN');
        SQL.Add('new.ID = GEN_ID(SETTINGS_ID_SEQ, 1);');
        SQL.Add('END');
        SQL.Add('END');
        ExecSQL;

        SQL.Clear;
        SQL.text:=( 'INSERT INTO SETTINGS '+
                '(CONFKEY,CONFVALUEEN,CONFVALUETR,CONFVALUEES) VALUES '+
                '("ChannelName","Test Channel","Test Kanalı","Test Channel")' );
        ExecSQL;


insert komutunda sorun çıkıyor Channelname unknown column diye. Sorun ne olabilir?
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...
omurolmez
Üye
Mesajlar: 187
Kayıt: 31 Eki 2012 11:41

Re: Firebird ssequence/generator ya da insert sorunu

Mesaj gönderen omurolmez »

Emin misiniz ? (Insert cümlesi doğru görünüyor)
Ömür Ölmez
PROGRAMADOR
Üye
Mesajlar: 239
Kayıt: 04 Oca 2008 01:53
Konum: Karşıyaka/İzmir

Re: Firebird ssequence/generator ya da insert sorunu

Mesaj gönderen PROGRAMADOR »

Yanıtınız için teşekkürler.

Sorun tırnaklarda imiş. Çift tırnak yerine tek tırnak koyunca sorun düzeldi.
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...
Cevapla