![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не получается в TADOStoredProc работать с MS SQL 2000 с DateTime [D6, MSSQL]
Alexander Tarasov © (2003-06-02 14:42:00)Уважаемые коллеги!
Подскажите, пожалуйста, что я делаю не так?
Есть ХП в MS SQL 2000, которая имеет входной параметр @field3_3 типа DATETIME. В программе пишу:
ADOStoredProc1.Parameters.ParamByName("@field3_3").Value := "01.01.2003";
ADOStoredProc1.ExecProc;
На ExecProc получаю ошибку:
"[Micrisoft][ODBC SQL Server Driver]Optional feature not implemented"
С параметрами других типов проблем нет. Пробовал менять формат даты, операционную систему, ставил Update pack 2 - помогает :(
Nic_B (2003-06-03 09:36:00) [1]Не знаю как на MS SQL 2000 но у меня на стареньком MS SQL 6.5 работает такой код:
function TForm1.SQL_Date_String ( Date : TDateTime ): string;
var OldFormat : string;
ResultStr : string;
begin
If Date>0 then
begin
OldFormat:=ShortDateFormat;
ShortDateFormat:="mm/dd/yyyy";
ResultStr:=DateToStr(Date);
ShortDateFormat:=OldFormat;
Result:=copy(ResultStr,7,4)+copy(ResultStr,1,2)+copy(ResultStr,4,2);
end
else
Result:="";
end;
Alexander Tarasov (2003-06-03 09:25:00) [2]Большое спасибо всем за советы...
Проблему удалось решить следующим образом:
перед инициализацией параметров поставил
ADOStoredProc1.Parameters.Refresh;
:)
интересующийся (2003-06-03 07:00:00) [3]может лучше сделать параметр string,
а внутри процедуры значение преобразовать в datetime
- знаешь свой формат даты
- не зависишь от формата даты сервера
- при установке на другой сервер не паришься
Тих (2003-06-02 23:27:00) [4]FormatDateTime => "2003-01-01"
NAlexey (2003-06-02 16:21:00) [5]Попробуй не string присваивать, а дату.