Текущий архив: 2011.09.04;
Скачать: CL | DM;
Вниз
Не желает выполнятся запрос через Query Найти похожие ветки
← →
miau (2010-01-18 12:46) [0]Вот так выглядит код в Delphi
with TADOQuery.Create(nil) do try
Connection:=adcMain;
SQL.Clear;
SQL.Add("exec ACCOUNT_WORK_TIME_SAVE");
SQL.Add(" @ACCOUNT_ID = "+IntToStr(ID)+",");
SQL.Add(" @XML = """+StringReplace(s,"""","""""",[rfReplaceAll])+"""");
ExecSQL;
finally
Free;
end;
Вот так выглядит текст запроса:
exec ACCOUNT_WORK_TIME_SAVE
@ACCOUNT_ID = 219188,
@XML = "
<ROOT>
<mdsWT
RecId="1"
ID="5"
ACCOUNT_WORK_MECH_ID="913836"
DATE_START="20091231 00:00:00"
DATE_END="20100115 18:27:00"
DATE_WRITE="20100115 18:37:07"/>
</ROOT>
"
Вот так выглядит хранимая процедура:
create procedure ACCOUNT_WORK_TIME_SAVE
@ACCOUNT_ID int,
@XML text
as
...
/*вызовов других процедур и функций здесь нет*/
...
GO
Собственно вопрос:
При выполнении кода возникает ошибка "неправильно определён объект Parametr. Предоставлены неполные или несовместимые данные.", но при прогоне запроса в Query Analyzer всё отрабатывает нормально. Где я туплю, подскажите пожалуйста?
← →
sniknik © (2010-01-18 13:07) [1]в дельфи (BDE/ADO) авто определение параметров использует знак ":"
вот введи все это в дизайн тайм и проверь что там получилось по параметрам.
отключи авто определение.
← →
Ega23 © (2010-01-18 13:09) [2]
with TADOQuery.Create(nil) do try
ParamCheck := False;
Connection:=adcMain;
SQL.Text := ".........";
ExecSQL;
finally
Free;
end;
← →
sniknik © (2010-01-18 13:11) [3]> отключи авто определение.
хотя нет, лучше не отключать, а использовать параметры, правильным образом вместо подстановок как у тебя .
← →
Ega23 © (2010-01-18 13:12) [4]Даже так:
with TADOCommand.Create(nil) do try
ParamCheck := False;
CommandText := "......"
Connection:=adcMain;
Execute;
finally
Free;
end;
← →
Ega23 © (2010-01-18 13:13) [5]
> хотя нет, лучше не отключать, а использовать параметры,
> правильным образом вместо подстановок как у тебя .
Слушай, а для XML какой тип параметра надо по-идее использовать? Для MSSQL + ADO?
← →
miau (2010-01-18 13:14) [6]Спасибо!
Всё получилось. Вы меня спасли :)
Но не ожидал такой пакости от дельфей...
← →
miau (2010-01-18 13:18) [7]Использовать параметры правильным образом я боюсь после того, как дельфа стала съедать время от времени часть их длины. Именно поэтому я использую Query, а не StoredProc.
← →
sniknik © (2010-01-18 13:23) [8]> Слушай, а для XML какой тип параметра надо по-идее использовать? Для MSSQL + ADO?
строка, до 4кб. вроде... других нет (в смысле text), или вайдстринг до 2гиг, но 2000й не понимает (опить насколько помню). (т.е. зависит от сервера)
> Но не ожидал такой пакости от дельфей...
это не пакость, это удобство... в случае когда тебе это нужно, а когда нет то можно отключить.
а еще лучше как говорил уже использовать правильно, будет "удобочитеемей", и без подобных проблем.
Страницы: 1 вся ветка
Текущий архив: 2011.09.04;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.004 c