interbasede stored procedure tanımlama

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
ypinar
Üye
Mesajlar: 9
Kayıt: 07 Ara 2003 07:44

interbasede stored procedure tanımlama

Mesaj gönderen ypinar »

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
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

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.....
ypinar
Üye
Mesajlar: 9
Kayıt: 07 Ara 2003 07:44

Mesaj gönderen ypinar »

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.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

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.....
hakkus
Üye
Mesajlar: 160
Kayıt: 18 Haz 2003 12:02
Konum: Konya

Mesaj gönderen hakkus »

Merhabalar,
Bir soru da benden YPinar ın aşağıda yazdığı varChar alan da uzunluk belirtmeden çalışabilir mi?
D_ISIM varchar(10)
CREATE PROCEDURE DOKTOR_EKLE (
D_NO INTEGER,
D_ISIM VARCHAR ,
D_SOYAD VARCHAR,
saygılar
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

isin asli o benim de dikkatimi cekti. Hata oldugunu dusundum ama SP o sekilde create edilebildigine gore ilgili interbase versiyonu boyle bir seye izin veriyor diye dusundum. Belki default bir uzunluk atiyordur....
ypinar
Üye
Mesajlar: 9
Kayıt: 07 Ara 2003 07:44

Mesaj gönderen ypinar »

/* 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.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

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 

seklinde create etmede hic bir sorun olmadi.... dd_uzmanalan alanina hata verdi d_uzmanalan olarak duzelttim. Bir de DATE icin hata verdi onu da TIMESTAMP yaptigimda sorunsuz create edebildim. SQL Explorer kullanarak create ettim.... Acaba kullandıgınız programdan kaynaklanan bir sorun mu? Olmazsa bir de SQL Explorer'dan deneyin....
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

insert into doktor (d_no, ...) şeklinde tablo adından sonra bir boşluk vermeyi deneyin.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

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
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

ewt tablo ismi ve alanlar buyuk harf olunca hicbir sorun cıkmıyor
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
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Fakat ilginctir ki SQL Explorer uzerinden create edildiginde boyle bir sorun olmuyor... Ya da bendeki interbase versiyonu ile sizdekilerin farki mi dir? Bende interbase 6 var...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

firebird 1.0 uzerinde yaptım denemeleri
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

aynı olay (alanları ve tabloların büyük/küçük harflerle yazılmış olmaları) ms-sql server da da var:( kullanılan işletim sistemi ve code-page lerle ilgili olabilir??
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

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
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 !!!
Cevapla