Текущий архив: 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.46 MB
Время: 0.006 c