![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пердача null в качестве параметра процедуре. [D7, MSSQL]
Сабач © (2006-02-08 09:33:00)Необходимо в качестве параметра типа int в процедуру на SQL сервере передать значение null. Если ничего не передаю то передаёться 0. Если присваивать null то выдаёться ошибка.
Ольга (2006-02-08 18:39:00) [1]MyProc.Parameters.ParamValues['@par']:=UnAssigned;
evvcom (2006-02-08 15:19:00) [2]
> evvcom © у меня почему то нету метода Clear
Да... Точно... У ADODataSet есть Parameters.ParamByName: TParameter, у которого нет Clear. А у ClientDataSet, IBStoredProc, StoredProc, OraStoredProc есть Params.ParamByName: TParam, у которого есть Clear. Вот поэтому и просят всегда указать компоненты доступа к БД.
Ega23 (2006-02-08 11:57:00) [3]
Create procedure MyProc
@Param1 int=0,
@Prarm2 int= NULL
AS
.....
?
Desdechado (2006-02-08 11:36:00) [4]сразу бы так, а то мутил тут, на уточняющие вопросы не отвечал
Сабач (2006-02-08 11:08:00) [5]Короче всё сам разобрался ))) Всем спасибо за помощь ))
Сабач (2006-02-08 11:00:00) [6]Приведи, плз, полный текст ошибки и текст хранимой процедуры.
------------------
Cannot insert the value NULL into colum "kv" table
Что делает эта процедура?
-----------------------
процедура вставляет новые строки
Не заносит ли она значение, переданное в @kv, в какой-нибудь столбец, который null не приемлит (это я телепатор включаю на малых оборотах)?
Кстати, в [0] только описание ситуации. Чего спросить-то хотел? Почему ругается?
--------
Я же говорю если выполнить эту процедуру в Query Analizer то работает всё нормально, в том числе и с параметрами NULL тем более в таблице уже есть строки со значением null
Bless (2006-02-08 10:56:00) [7]И уж совсем бы хорошо, скрипт на создание таблицы, в которую идет вставка (если идет, конечно)
Desdechado (2006-02-08 10:55:00) [8]и очень желательно компоненты доступа к данным укажи
Bless (2006-02-08 10:49:00) [9]Сабач [6]>
Приведи, плз, полный текст ошибки и текст хранимой процедуры.
Bless (2006-02-08 10:47:00) [10]Сабач (08.02.06 10:36) [4]
А ошибку выдаёт, что не может вставить значени null в столбец
И что, есть основания этому не верить?
Что делает эта процедура?
Не заносит ли она значение, переданное в @kv, в какой-нибудь столбец, который null не приемлит (это я телепатор включаю на малых оборотах)?
Кстати, в [0] только описание ситуации. Чего спросить-то хотел? Почему ругается?
Сабач (2006-02-08 10:43:00) [11]msguns © Нет true. Если в Query Analizer выполнять эту процедуру и в качестве параметра, указывать Null то работает процедура работает нормально нормально.
msguns (2006-02-08 10:39:00) [12]Столбец у тебя AllowedNull = false
?
Сабач (2006-02-08 10:36:00) [13]А ошибку выдаёт, что не может вставить значени null в столбец
Сабач (2006-02-08 10:31:00) [14]evvcom © у меня почему то нету метода Clear
msguns © вот код
dm.NomStoredProc1.Parameters.ParamByName('@kv').Value:=null;
dm.NomStoredProc1.ExecProc;
Ошибка возникает при выполнении программы, компилируеться нормально
evvcom (2006-02-08 10:04:00) [15]ParamByName('Param').Clear;
msguns (2006-02-08 09:52:00) [16]Код покажи. Где ошибка
ЗЫ. Uses Variants, надеюсь, имеется ?