tablo create etmede ilginç bi hata

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

tablo create etmede ilginç bi hata

Mesaj gönderen true_false »

merhabalar

Kod: Tümünü seç

CREATE TABLE TOPRAK_FUMIGASYON (
    RECORD_ID         VARCHAR(25) NOT NULL,
    RAPOR_ID          VARCHAR(10) ,
    RAPOR_DATE_TIME   TIMESTAMP,
    PORTION_ID        VARCHAR(25),
    URUN_ID           VARCHAR(25),
    CESIT_ID          VARCHAR(25),
    SEZON_ID          VARCHAR(25),
    BOLUM_ALAN_ID     FLOAT,
    MEVKI_ID          VARCHAR(25),
    ZIRAAT_MUH        VARCHAR(25),
    OPT               SMALLINT,
    MEVKI_ID          VARCHAR(25),
    RECORD_DATE_TIME  TIMESTAMP,
    GROWER_ID         VARCHAR(25));
bu kodu ilk önce delphiden çalıştırmayı denedim ama hata verince ib expertten çalıştırdığımda
bana
This operation is not defined for system tables.
unsuccessful metadata update.
STORE RDB$RELATION_FIELDS failed.
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_15".

Kod: Tümünü seç

        function create_table:Boolean;
        begin
        Result := False;
        IBQuery1.Close;
        IBQuery1.SQL.Clear;
        IBQuery1.SQL.Add('    CREATE TABLE TOPRAK_FUMIGASYON (');
        Memo1.Lines.Add(IBQuery1.SQL[0]);
        IBQuery1.SQL.Add('RECORD_ID         DM_STR25 NOT NULL,');
        Memo1.Lines.Add(IBQuery1.SQL[1]);
        IBQuery1.SQL.Add('RAPOR_ID          DM_STR10,');
        Memo1.Lines.Add(IBQuery1.SQL[2]);
        IBQuery1.SQL.Add('RAPOR_DATE_TIME   DM_TIMESTAMP,');
        Memo1.Lines.Add(IBQuery1.SQL[3]);
        IBQuery1.SQL.Add('PORTION_ID        DM_STR25,');
        Memo1.Lines.Add(IBQuery1.SQL[4]);
        IBQuery1.SQL.Add('URUN_ID           DM_STR25,');
        Memo1.Lines.Add(IBQuery1.SQL[5]);
        IBQuery1.SQL.Add('CESIT_ID          DM_STR25,');
        Memo1.Lines.Add(IBQuery1.SQL[6]);
        IBQuery1.SQL.Add('SEZON_ID          DM_STR25,');
        Memo1.Lines.Add(IBQuery1.SQL[7]);
        IBQuery1.SQL.Add('BOLUM_ALAN_ID     DM_FLOAT,');
        Memo1.Lines.Add(IBQuery1.SQL[8]);
        IBQuery1.SQL.Add('MEVKI_ID          DM_STR25,');
        Memo1.Lines.Add(IBQuery1.SQL[9]);
        IBQuery1.SQL.Add('ZIRAAT_MUH        DM_STR25,');
        Memo1.Lines.Add(IBQuery1.SQL[10]);
        IBQuery1.SQL.Add('OPT               DM_SMALLINT,');
        Memo1.Lines.Add(IBQuery1.SQL[11]);
        IBQuery1.SQL.Add('RECORD_DATE_TIME  DM_TIMESTAMP,');
        Memo1.Lines.Add(IBQuery1.SQL[12]);
        IBQuery1.SQL.Add('    RECORD_DATE_TIME  TIMESTAMP,');
        Memo1.Lines.Add(IBQuery1.SQL[13]);
        IBQuery1.SQL.Add('GROWER_ID         DM_STR25');
        Memo1.Lines.Add(IBQuery1.SQL[14]);
        IBQuery1.SQL.Add(');');
        Memo1.Lines.Add(IBQuery1.SQL[15]);
         try
         IBQuery1.ExecSQL;
         IBQuery1.Transaction.CommitRetaining;
         except
         exit;
      end;
        Result:= True;
       end;
delphide ise bu kodu döndüremiyor ibqueryinin params cehecki false
type
Tform1 = class(Tform)
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Kod: Tümünü seç

CREATE TABLE TOPRAK_FUMIGASYON (
    RECORD_ID         VARCHAR(25) NOT NULL,
   RAPOR_ID          VARCHAR(10) ,
    RAPOR_DATE_TIME   date,
    PORTION_ID        VARCHAR(25),
    URUN_ID           VARCHAR(25),
    CESIT_ID          VARCHAR(25),
    SEZON_ID          VARCHAR(25),
    BOLUM_ALAN_ID     FLOAT,
    MEVKI_ID          VARCHAR(25),
    ZIRAAT_MUH        VARCHAR(25),
    OPT               SMALLINT,
    MEVKI_ID          VARCHAR(25),
    RECORD_DATE_TIME  TIMESTAMP,
    GROWER_ID         VARCHAR(25)
    );
Sorun sadece MEVKI_ID VARCHAR(25) alanı, aklım ermedi bu işe :) belki system tablolarıyla çakışıyor vs.

MEVKI_ID VARCHAR(25) bu alanın ismini değiştir,öyle dene çalıştığını göreceksin fakat alakası yok :roll: ,ama çalışıyor. :wink:

iyi günler...
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

@Uğur1982 interbase ile bi şekilde sorunu çözüyorum ama delphide olmuyo.
kısaca biraz yapmak istediğimden bahsedeyim database'i update yapmak istiyorum eski veri tabanıma yeni bir tablo eklicem bu tabloya bağlı generator ve triger bu işi son kullanıcının yapması için delphide ufak bir program yazıyorum aslında şimdiye kadar bir çok kez de yazdım. tablomu metadata ile sql kodlarını çıkartıyorum ilk önce generatör sonra tablo sonra PK ve en sonda trigermın çıktılarını alıyorum (interbase bu sıra ile çıkarıyor) çıktıları tek tek interbase den çalıştırdığımda sorun yok sorun delphide delphi bölümünde yukardaki kodumu yazıyorum ama hata alıyorum. ilgilendiğin için saol.
type
Tform1 = class(Tform)
onaydin

Mesaj gönderen onaydin »

iki tane mevki_id var.
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Kod: Tümünü seç

    MEVKI_ID          VARCHAR(25),
    ZIRAAT_MUH        VARCHAR(25),
    OPT               SMALLINT,
    MEVKI_ID          VARCHAR(25), 
İki MEVKI_ID nin Mevkisi o kadar yakın ki göz yanıltmacası gibi olmuş,Uzaktan tek gibi gözüküyor :)
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Onur sende de ne göz var be kardeşim :lol:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
onaydin

Mesaj gönderen onaydin »

:shock:
:)
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

kendimden utanıyorum :?
type
Tform1 = class(Tform)
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Utanacak bir şey yok.. her programcının başına gelebilecek bir durum.. Cobol la yazarken satır sonları nokta ile bitmekte ya, bilenler bilir, bir nokta için saatlerce uğraştığımı bilirim. zaten dos ekranında da bir nokta bir pksel kadar birşey :duvar:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
emrahkaraarslan
Üye
Mesajlar: 243
Kayıt: 21 Haz 2005 12:28
Konum: Trabzon

Mesaj gönderen emrahkaraarslan »

onur çok dikkatlisin bazen bir nokta insanın başına çok dert açıyor bir nokta yüzünden 2 gün uğraşmıştım gerçi bu adsl kurarlen olmuştu ama olsun :lol:
Allah'ım bana değiştirebileceklerimi değiştirme değiştiremeyeceklerimi kabullenme ve aradaki farkı anlayabilme yeteneği ver
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

rsimsek yazdı:Utanacak bir şey yok.. her programcının başına gelebilecek bir durum.. Cobol la yazarken satır sonları nokta ile bitmekte ya, bilenler bilir, bir nokta için saatlerce uğraştığımı bilirim. zaten dos ekranında da bir nokta bir pksel kadar birşey :duvar:
hehehe
ben bir ";" virgül için üç gün uğraştım.
en sonunda üniversiteden hocam gelip o çözmüştü. :lol:

Kod: Tümünü seç

 for i:=1 to 30 do                                         ;
begin
XXXXXXX
end;
noktalı virgül ekranın iyice sağına gitmiş. görünmüyor.
uğraş uğraş yapamamıştım.
:lol:
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

:) yapılan hatalar tecrübe ve öğrenmedeki en önemli noktalardır.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

hocam bu tip hatalrı bu aralar çok çok yapmaya başladım tatile çıma zamanı geldi galiba :D
type
Tform1 = class(Tform)
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bu demektir ki tecrüben artıyor :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

vakit önemli<olduğu için çıktı alıp kodların öle inceliyorum kağıtta daha kolay görünüyor...hatalar..
Siz hayal edin...Biz yapalım TuannaSoft...
Cevapla