interbasede stored procedure tanımlama
interbasede stored procedure tanımlama
Tablolarım create edilmiş,mevcut olmasına ragmen yazdıgım stored procedure ler içerisinde kullanamıyorum.her stored procedure içerisinde 'table unknow' hatası alıyorum.Bunun sebebi ne olabilir.sitedeki ornekleride deniyorum ama yine aynı
Teşekkurler
Teşekkurler
viewtopic.php?t=644
linkindeki makalede ornek SP'ler var. Bu hata ancak tablo adinin sorunlu olmasında verilir. Bir de belki tablolari create eden kullanıcı ile sorgulayan kullanıcı farkli ise boyle bir hata olabilir ki interbase icin farkli kullanıcı ile calismadiginizi tahmin ediyorum.
Hata veren SP kodunu ve hatanın tam metnini verirseniz belki farkli bir yorum da yapılabilir.
Kolay gelsin.....
linkindeki makalede ornek SP'ler var. Bu hata ancak tablo adinin sorunlu olmasında verilir. Bir de belki tablolari create eden kullanıcı ile sorgulayan kullanıcı farkli ise boyle bir hata olabilir ki interbase icin farkli kullanıcı ile calismadiginizi tahmin ediyorum.
Hata veren SP kodunu ve hatanın tam metnini verirseniz belki farkli bir yorum da yapılabilir.
Kolay gelsin.....
merhaba
evet, tablo sahibi ve stored sahibi aynı,ikiside sysdba.linkdeki ornekleri denedim onlarda boyle bi sorun vermedi.ama kendi yazdıgım procedur hala hata veriyor.Hata veren procedure ve hatayı asagıda yazdım.
CREATE PROCEDURE DOKTOR_EKLE (
D_NO INTEGER,
D_ISIM VARCHAR ,
D_SOYAD VARCHAR,
D_DOGUMTAR DATE,
D_UZMANALAN VARCHAR,
D_DIPNO INTEGER,
D_KLINIK INTEGER,
D_MAAS INTEGER)
AS
BEGIN
insert into doktor(d_no,d_isim,d_soyad,d_dogumtar,d_uzmanalan,d_dipno,d_klinik,d_maas) values(:d_no,:d_isim,:d_soyad,:d_dogumtar,:d_uzmanalan,:d_dipno,:d_klinik,:d_maas);
END
---------- ERROR MESSAGE ----------
fmCompile.quCompile:
Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Table unknown.
DOKTOR.
evet, tablo sahibi ve stored sahibi aynı,ikiside sysdba.linkdeki ornekleri denedim onlarda boyle bi sorun vermedi.ama kendi yazdıgım procedur hala hata veriyor.Hata veren procedure ve hatayı asagıda yazdım.
CREATE PROCEDURE DOKTOR_EKLE (
D_NO INTEGER,
D_ISIM VARCHAR ,
D_SOYAD VARCHAR,
D_DOGUMTAR DATE,
D_UZMANALAN VARCHAR,
D_DIPNO INTEGER,
D_KLINIK INTEGER,
D_MAAS INTEGER)
AS
BEGIN
insert into doktor(d_no,d_isim,d_soyad,d_dogumtar,d_uzmanalan,d_dipno,d_klinik,d_maas) values(:d_no,:d_isim,:d_soyad,:d_dogumtar,:d_uzmanalan,:d_dipno,:d_klinik,:d_maas);
END
---------- ERROR MESSAGE ----------
fmCompile.quCompile:
Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Table unknown.
DOKTOR.
ilginc.... insert komutunda gozume carpan bir sorun yok.... son care olarak eger IBConsole'dan veritabanınızın Metadata 'si icinden ilgili DOKTOR tablosunun create kodunu da gonderebilirseniz ayni tabloyu ve SP'u create ederek sizin icin bir deneme yapabilirim.....
Bir de bu mesaji DElphi tarafindan mi aliyorsunuz eger oyleyse belki sorun SP da olmayabilir. SQL Explorer uzerinden ve IBConsole uzerinden SP'u calistirmayi denediniz mi?
Kolay gelsin.....
Bir de bu mesaji DElphi tarafindan mi aliyorsunuz eger oyleyse belki sorun SP da olmayabilir. SQL Explorer uzerinden ve IBConsole uzerinden SP'u calistirmayi denediniz mi?
Kolay gelsin.....
/* Table: doktor, Owner: SYSDBA */
CREATE TABLE "doktor"
(
"d_no" INTEGER NOT NULL,
"d_isim" VARCHAR(8) NOT NULL,
"d_soyad" VARCHAR(8) NOT NULL,
"d_dogumtar" DATE,
"d_uzmanalan" VARCHAR(11),
"d_dipno" INTEGER,
"d_klinik" INTEGER,
"d_maas" INTEGER,
CONSTRAINT "PK_doktor" PRIMARY KEY ("d_no")
);
CREATE PROCEDURE DOKTOR_EKLE (
D_NO INTEGER,
D_ISIM VARCHAR (8),
D_SOYAD VARCHAR (8),
D_DOGUMTAR DATE,
D_UZMANALAN VARCHAR (11),
D_DIPNO INTEGER,
D_KLINIK INTEGER,
D_MAAS INTEGER)
AS
BEGIN
insert into doktor(d_no,d_isim,d_soyad,d_dogumtar,dd_uzmanalan,d_dipno,d_klinik,d_maas)
values(:d_no,:d_isim,:d_soyad,:d_dogumtar,:d_uzmanalan,:d_dipno,:d_klinik,:d_maas);
END
SP ve tablomun aslı yukarıdaki gibiler.SP de varchar tipinde uzunlugu belirtmem gerekiyordu.simdi duzelttim.ama asıl sorun ondan degil.Hata mesajını SP'yi derlemeye çalısırken EMS interbase/firebird manager Lite programından alıyorum.Henuz delphide birşey yapmadım.Gosterdiginiz linkteki orneklerde sorun vermeyip kendi yazdıgımda sorun olması cok ilginc.
CREATE TABLE "doktor"
(
"d_no" INTEGER NOT NULL,
"d_isim" VARCHAR(8) NOT NULL,
"d_soyad" VARCHAR(8) NOT NULL,
"d_dogumtar" DATE,
"d_uzmanalan" VARCHAR(11),
"d_dipno" INTEGER,
"d_klinik" INTEGER,
"d_maas" INTEGER,
CONSTRAINT "PK_doktor" PRIMARY KEY ("d_no")
);
CREATE PROCEDURE DOKTOR_EKLE (
D_NO INTEGER,
D_ISIM VARCHAR (8),
D_SOYAD VARCHAR (8),
D_DOGUMTAR DATE,
D_UZMANALAN VARCHAR (11),
D_DIPNO INTEGER,
D_KLINIK INTEGER,
D_MAAS INTEGER)
AS
BEGIN
insert into doktor(d_no,d_isim,d_soyad,d_dogumtar,dd_uzmanalan,d_dipno,d_klinik,d_maas)
values(:d_no,:d_isim,:d_soyad,:d_dogumtar,:d_uzmanalan,:d_dipno,:d_klinik,:d_maas);
END
SP ve tablomun aslı yukarıdaki gibiler.SP de varchar tipinde uzunlugu belirtmem gerekiyordu.simdi duzelttim.ama asıl sorun ondan degil.Hata mesajını SP'yi derlemeye çalısırken EMS interbase/firebird manager Lite programından alıyorum.Henuz delphide birşey yapmadım.Gosterdiginiz linkteki orneklerde sorun vermeyip kendi yazdıgımda sorun olması cok ilginc.
Kod: Tümünü seç
CREATE PROCEDURE DOKTOR_EKLE (
D_NO INTEGER,
D_ISIM VARCHAR (8),
D_SOYAD VARCHAR (8),
D_DOGUMTAR TIMESTAMP,
D_UZMANALAN VARCHAR (11),
D_DIPNO INTEGER,
D_KLINIK INTEGER,
D_MAAS INTEGER)
AS
BEGIN
insert into doktor(d_no,d_isim,d_soyad,d_dogumtar,d_uzmanalan,d_dipno,d_klinik,d_maas)
values(:d_no,:d_isim,:d_soyad,:d_dogumtar,:d_uzmanalan,:d_dipno,:d_klinik,:d_maas);
END
abi dun ben dbworkbench uzerinde denedim
bosluk bırakmak farketmiyor
yukardaki ornekleri aynen alıp denedim
doktor isimli tabloyu bulamıyor diye bir hata veriyordu
tablo ismini buyuk harf yaptım bu seferde d_no alanını bulamadı
muhtemelen tablo create edilirken tum herseyi buyuk harf yapmak gerekiyor
bosluk bırakmak farketmiyor
yukardaki ornekleri aynen alıp denedim
doktor isimli tabloyu bulamıyor diye bir hata veriyordu
tablo ismini buyuk harf yaptım bu seferde d_no alanını bulamadı
muhtemelen tablo create edilirken tum herseyi buyuk harf yapmak gerekiyor
ÜŞENME,ERTELEME,VAZGEÇME
ewt tablo ismi ve alanlar buyuk harf olunca hicbir sorun cıkmıyor
nedendir bilmiyorum:)
nedendir bilmiyorum:)
Kod: Tümünü seç
CREATE TABLE DOKTOR
(
D_NO INTEGER NOT NULL,
D_ISIM VARCHAR( 8) NOT NULL COLLATE WIN1254,
D_SOYAD VARCHAR( 8) NOT NULL COLLATE WIN1254,
D_DOGUMTAR DATE,
D_UZMANALAN VARCHAR( 11) COLLATE WIN1254,
D_DIPNO INTEGER,
D_KLINIK INTEGER,
D_MAAS INTEGER,
CONSTRAINT PK_DOKTOR PRIMARY KEY (D_NO)
);
ÜŞENME,ERTELEME,VAZGEÇME
Sebebini tam hatırlamıyorum ama, küçük harf kullanmayın diye bir yazı okumuştum.Tablo adları ve alan adlarını mutlaka büyük harf kullanın
kolay gele
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!