powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / проблема с параметром типа ftDateTime в ADOQuery
19 сообщений из 19, страница 1 из 1
проблема с параметром типа ftDateTime в ADOQuery
    #32163675
Добрый день знатоки!!! Проблема с передачей параметра типа ftDateTime в запрос ADO.

with Query1 do
with SQL do begin
Clear;
Add('SELECT Schet, Kassa, Date ');
Add('FROM payment');
Add('Where Date=:d1');
end;
Query1.Parameters.ParamByName('D1').Value :='15.05.2003';
Query1.Open;

Выдаётся ошибка: [Microsoft][ODBC SQL SERVER DRIVER] Optional feature not implemented

Если передавать параметр любого другого типа то все нормально.
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32163704
Papka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Query1.Parameters.ParamByName('D1').Value :=StrToDate('15.05.2003')

Moget tak zarabotajet?
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32163714
нет не работает ни так
Query1.Parameters.ParamByName('D1').Value :=StrToDate('15.05.2003');
ни так
Query1.Parameters.ParamByName('D1').Value :=StrToDateTime('15.05.2003');

А вот любой другой параметр передается, а дата никак.
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32163724
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так:
Query1.Parameters.ParamByName('D1').AsDate :=StrToDate('15.05.2003');
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32163729
Papka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chto-to takoje u menja tozhe bilo. Tam format dati dolzhen bil bit kakojto specialnij vrode. Sas ne ponju. Moget najdu - skinu. A voobsse oshibka kakaja-to strannaja. Moget nado che-nit v drovah pofixit? Nu tipa MDAC postavit zanovo?
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32163742
Voha так:
Query1.Parameters.ParamByName('D1').AsDate
нельзя !!!
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32163755
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему нельзя? Вот кусок рабочего кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
                FrmReportsBM.IBQueryOS_N6Itog.ParamByName('DATEN').AsDate
                                :=ConstAndVar.Quart.DateBegining;//TDateTime
                  FrmReportsBM.IBQueryOS_N6Itog.ParamByName('DATEK').AsDate
                            :=IncDay(ConstAndVar.Quart.DateNextQuart,- 1 );
                  FrmReportsBM.IBQueryOS_N6Itog.ParamByName('NUMB_M').AsInteger
                                :=ConstAndVar.Operat_CalculatIznos_BuhM;

указал типы в свойствах параметров DateType := ftDate и тип параметра Инпут. И все отлично работает. Незныю нужноли тут делат поправку на АДО.
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32163773
пробывал даже так:

Query1.Parameters.ParamByName('D1').DataType:=ftDate;
Query1.Parameters.ParamByName('D1').Value :=StrToDate('15.05.2003');
.............................
Query1.Open;

всё равно выдаётся ошибка: [Microsoft][ODBC SQL SERVER DRIVER] Optional feature not implemented

Ну кто поможет, кто знает???
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32163801
_designer_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил...
var
Query1 : TADOQuery;

Все пашет!
ЗЫ: MS Office 2000
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32163810
designer_
> Проверил...
>var
>Query1 : TADOQuery;

>Все пашет!
>ЗЫ: MS Office 2000

Не понял что ты этим хотел сказать.? Поставить MS Office2000 ???
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32163821
oleg_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так?
Query1.Parameters.ParamByName('D1').AsString := '15.05.2003';
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32163824
В ADOQuery такая запись:
Query1.Parameters.ParamByName('D1').AsString := '15.05.2003';
!!! не принимается !!!
Можно лишь:
Query1.Parameters.ParamByName('D1').DataType:=ftDateTime;
Query1.Parameters.ParamByName('D1').direction:=pdInput;
Query1.Parameters.ParamByName('D1').value:=StrToDateTime('15.05.2003');
но это не помогает.
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32163844
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если долго не получается, то надо обойти этот этап, т.е. сделай динамическокое формирпование запроса в Query.SQL
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32163862
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй так:
ADOQuery1.Parameters.Value:=FormatDateTime('yyyymmdd',MyDate)
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32164030
aag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ерунда какая-то у тебя. У меня следующий код прекрасно работает:

dtFilterDate :TDateTime;
...
if dtFilterDate > 0 then q.Parameters.ParamByName('crdate').Value := dtFilterDate
else q.Parameters.ParamByName('crdate').Value := Null;
...
Попробуй переименовать параметр - м.б. не нравится именно Date?
Я встречал неприятности, когда названия параметров совпадают с зарезервированными словами.
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32164043
oleg_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так?
Параметр - строкового типа, использовать DateValue(:D1) и формат 'yyyymmdd'
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
with Query1, SQL do 
begin 
  Clear; 
  Add('SELECT Schet, Kassa, Date '); 
  Add('FROM payment'); 
  Add('Where Date = DateValue(:D1)'); 
  Parameters.ParamByName('D1').DataType:=ftString; 
  Parameters.ParamByName('D1').Direction:=pdInput; 
  Parameters.ParamByName('D1').Value :='2003.05.15'; 
  Open; 
end;
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32164045
И всё же проблема осталась. Запросы один к одному, разница в компонентах.
Если использую BDE запрос, то параметр передаётся:

BDEQuery.Active := False;
with BDEQuery do
with SQL do begin
Clear;
Add('SELECT * ');
Add('FROM payment');
Add('Where Date=:d1');
end;
BDEQuery.ParamByName('D1').DataType:=ftDateTime;
BDEQuery.ParamByName('D1').ParamType:=ptInput;
BDEQuery.ParamByName('D1').Value :=StrToDateTime('01.03.2000');
BDEQuery.Open;

Если использую ADO запрос, то выдаётся ошибка (Доп. возможность не реализована):

ADOQuery.Active := False;
with ADOQuery do
with SQL do begin
Clear;
Add('SELECT * ');
Add('FROM payment');
Add('Where Date=:d1');
end;
ADOQuery.Parameters.ParamByName('D1').DataType:=ftDateTime;
ADOQuery.Parameters.ParamByName('D1').direction:=pdInput;
ADOQuery.Parameters.ParamByName('D1').Value :=StrToDateTime('01.03.2000');
ADOQuery.Open;
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32164087
_designer_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял что ты этим хотел сказать.? Поставить MS Office2000 ???

Нет. Я написал чей драйвер юзал для проверки твоего кода...
...
Рейтинг: 0 / 0
проблема с параметром типа ftDateTime в ADOQuery
    #32164211
hibou8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ja toze nedavno reshal etu problemu.. :-)
Nado v Properties parametra D1 izmenit' DataType s ftDateTime na ftString. Togda mozno pisat:
ADOQuery.Parameters.ParamByName('D1').Value :='01.03.2000';

Eto prosto ADO ne dodelali... :-)))
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / проблема с параметром типа ftDateTime в ADOQuery
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]