Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2011.09.04;
Скачать: [xml.tar.bz2];

Вниз

Не желает выполнятся запрос через 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
15-1305232204
Юрий
2011-05-13 00:30
2011.09.04
С днем рождения ! 13 мая 2011 пятница


15-1305098229
young_dev
2011-05-11 11:17
2011.09.04
обращение к объекту


1-1258480783
STD
2009-11-17 20:59
2011.09.04
TVirtualStringTree ScrollBar


2-1305938346
Drowsy
2011-05-21 04:39
2011.09.04
В какой системной таблице Firebird2.5


15-1304775180
картман
2011-05-07 17:33
2011.09.04
сегодня у друга менял мозги





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский