Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.008 c
2-1305788693
apic
2011-05-19 11:04
2011.09.04
Дней360


4-1248422295
Dmitriy
2009-07-24 11:58
2011.09.04
как определить соединение


15-1305187866
Дмитрий С
2011-05-12 12:11
2011.09.04
Задачка с ЕГЭ (http://ege.yandex.ru)


3-1263635532
victor
2010-01-16 12:52
2011.09.04
обновление данных в ADODataSet


2-1305751066
vasja123
2011-05-19 00:37
2011.09.04
Ассоциация с типом файлов