![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при исполнении процедуры.
Yakudza © (2002-02-28 11:54:00)Есть форма добавления новой компании в базу, но несколько полей часто бывают пустыми, типа, 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 пусто то параметру процедуры присваиваю пробел.
Спасибо за любую информацию.
roottim (2002-02-28 16:45:00) [1]DM.spAdd_Embassy.Prepare вот эту перед exec ставь и назабудь UnPrepare после него
попробуй ка заменить так!..
if phone<>"" then
DM.spAdd_Embassy.ParamByName("@phone").AsString := phone;
else
DM.spAdd_Embassy.ParamByName("@phone").Value:=NULL;
а так в пр все по уму!!! может гвоздик и в этом...
Yakudza (2002-02-28 16:30:00) [2]Вот :
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 15:35:00) [3]выложи код где инициализируеш SP
Yakudza (2002-02-28 15:28:00) [4]c null все равно ругаеться.:(
Я ж говорю это StoredProc ругаеться перед тем как запустить параметры на сервак.
Yakudza (2002-02-28 14:42:00) [5]>roottim
default null.... - счас попробую !
roottim (2002-02-28 14:04:00) [6]и второе!!.... ошибка при присвоении параметров могет быть
roottim (2002-02-28 13:54:00) [7]ясен пень!...
он непонимает что за значение ему присваивают...
в оракловой бы проседуре я бы попробовал так
create procedure add ( name varchar(200) default null....
и у тебя скобочка опущена в инсерт, но это скорее очепятка :)
Yakudza (2002-02-28 13:35:00) [8]>roottim
Врядли это процедура, ругаеться еще до того как пытаеться исполнить процедуру на серваке.
но на всякий случай вот она -
CREATE PROCEDUREadd (@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 INTOembassy 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:15:00) [9]раз ты используеш не дб компоненты скорее всего в самой процедуре баг
выложи ее
Yakudza (2002-02-28 12:58:00) [10]Прошу прощения,опечатка:))
поля в базе null :))
Yakudza (2002-02-28 12:29:00) [11]База Sybase поля не not null.
bas (2002-02-28 12:15:00) [12]Какая база-то?
Поля в БД notNULL?