Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.28;
Скачать: CL | DM;

Вниз

Ошибка при исполнении процедуры.   Найти похожие ветки 

 
Yakudza ©   (2002-02-28 11:54) [0]

Есть форма добавления новой компании в базу, но несколько полей часто бывают пустыми, типа, emailа нет и т.д.. И когда исполняеться процедура, и есть такие пустые значения то она естественно ругаеться -

"Project acc.exe raised exception class EDBEngineError with message "General SQL error".
[INTERSOLV][ODBC Server driver] Character, decimal, and binary parameters cannot have a precision of zero."

подскажите как лучше решить эту проблему, пока что я проверяю - если TEdit.Text пусто то параметру процедуры присваиваю пробел.

Спасибо за любую информацию.


 
bas   (2002-02-28 12:15) [1]

Какая база-то?
Поля в БД notNULL?


 
Yakudza ©   (2002-02-28 12:29) [2]

База Sybase поля не not null.


 
Yakudza ©   (2002-02-28 12:58) [3]

Прошу прощения,опечатка:))
поля в базе null :))


 
roottim   (2002-02-28 13:15) [4]

раз ты используеш не дб компоненты скорее всего в самой процедуре баг
выложи ее


 
Yakudza ©   (2002-02-28 13:35) [5]

>roottim
Врядли это процедура, ругаеться еще до того как пытаеться исполнить процедуру на серваке.

но на всякий случай вот она -

CREATE PROCEDURE add (@name varchar(200),@address varchar (100),@phone varchar(20),@fax varchar(20),@a_first_name varchar (70),@a_last_name varchar (100),@website varchar (100), @email varchar (100),@notes varchar (250))

AS
DECLARE

@date datetime
BEGIN
SELECT @date = getdate()
INSERT INTO embassy name,address,phone,fax,a_first_name,a_last_name,website,email,add_date,notes) VALUES (@name,@address,@phone,@fax,@a_first_name,@a_last_name,@website,@email,@date,@notes)

END


 
roottim   (2002-02-28 13:54) [6]

ясен пень!...
он непонимает что за значение ему присваивают...
в оракловой бы проседуре я бы попробовал так

create procedure add ( name varchar(200) default null....
и у тебя скобочка опущена в инсерт, но это скорее очепятка :)


 
roottim   (2002-02-28 14:04) [7]

и второе!!.... ошибка при присвоении параметров могет быть


 
Yakudza ©   (2002-02-28 14:42) [8]

>roottim
default null.... - счас попробую !


 
Yakudza ©   (2002-02-28 15:28) [9]

c null все равно ругаеться.:(
Я ж говорю это StoredProc ругаеться перед тем как запустить параметры на сервак.


 
roottim   (2002-02-28 15:35) [10]

выложи код где инициализируеш SP


 
Yakudza ©   (2002-02-28 16:30) [11]

Вот :

DM.spAdd_Embassy.Prepare;
DM.spAdd_Embassy.ParamByName("@name").AsString := Trim(edEmbName.Text);
DM.spAdd_Embassy.ParamByName("@address").AsString := Trim(mAddress.Text);
DM.spAdd_Embassy.ParamByName("@phone").AsString := phone;
DM.spAdd_Embassy.ParamByName("@fax").AsString := fax;
DM.spAdd_Embassy.ParamByName("@a_first_name").AsString := a_first_name;
DM.spAdd_Embassy.ParamByName("@a_last_name").AsString := a_last_name;
DM.spAdd_Embassy.ParamByName("@website").AsString := website;
DM.spAdd_Embassy.ParamByName("@email").AsString := email;
DM.spAdd_Embassy.ParamByName("@notes").AsString := notes;
DM.spAdd_Embassy.ExecProc;


 
roottim   (2002-02-28 16:45) [12]

DM.spAdd_Embassy.Prepare вот эту перед exec ставь и назабудь UnPrepare после него
попробуй ка заменить так!..

if phone<>"" then
DM.spAdd_Embassy.ParamByName("@phone").AsString := phone;
else
DM.spAdd_Embassy.ParamByName("@phone").Value:=NULL;

а так в пр все по уму!!! может гвоздик и в этом...



Страницы: 1 вся ветка

Текущий архив: 2002.03.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
1-90889
Colibri
2002-03-17 15:58
2002.03.28
Про TImage


1-91004
fag2000@ok.ru
2002-03-15 17:43
2002.03.28
Как глобально выделить память?


6-91025
Bobr
2002-01-14 17:50
2002.03.28
Как получить имя текущего пользователя в NT сервисе


3-90801
LEKSYS
2002-03-04 16:50
2002.03.28
TreeView


14-91058
Свой
2002-02-05 04:05
2002.03.28
О женском поле