powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ADO + D7 + MSQL7 CreateParameter
9 сообщений из 9, страница 1 из 1
ADO + D7 + MSQL7 CreateParameter
    #32260647
gallus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите плз
В Dataset динамически задается текст запроса с параметрами (нужно именно
с параметрами)
dstParent.CommandText := 'Select * from arendator a where a.kodar = :kodar';
dstParent.Parameters.Refresh;
не работает
// dstParent.Parameters.ParseSQL(dmArenda.dstParent.CommandText, true);

создание параметра
dstParent.Parameters.CreateParameter('kodar', ftInteger, pdInput, 4, null);

пытаюсь обратиться к параметру, ругается на то, что мол нет такого параметра
dmArenda.dstParent.Parameters.ParamByName('kodar').Value := 1;
В чем моя ошибка ???
ADODataset.Parameters.AddParameters выдает ту же ошибку
Delphi7, MSQL7
Попутно, нужен ли патч ADO для Delphi7 ?
...
Рейтинг: 0 / 0
ADO + D7 + MSQL7 CreateParameter
    #32260662
Mik Prokoshin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Master-Detail связь используется ? Если да, то параметры будут сбрасываться VCL.
А вот есть ли патч для АДО на D7 ? Я не видел, хотя баги там - просто кошмар !
...
Рейтинг: 0 / 0
ADO + D7 + MSQL7 CreateParameter
    #32260699
gallus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Связь Master-Det не используется
...
Рейтинг: 0 / 0
ADO + D7 + MSQL7 CreateParameter
    #32260784
gallus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решила немного переделать, вот что у меня получилось
dstParent.CommandText := 'Select * from jna.arendator a where a.kodar = :kodar';
dstParent.Parameters.Refresh;
Здесь якобы создается параметр с именем KODAR
dstParent.Parameters.CreateParameter('kodar', ftInteger, pdInput, 4, null);
dstParent.Parameters.Refresh;
так не работает
dstParent.Parameters.ParamByName('kodar').Value := 1;
так работает
dmArenda.dstParent.Parameters.Items[0].Value := 92;
ВНИМАНИЕ значение переменной parametr – Param1
parametr :=dmArenda.dstParent.Parameters.Items[0].Name;

Получается, что параметр она создала сама, исходя из текста запроса, после Refresh, а вот строчку CreateParameter('kodar', ftInteger, pdInput, 4, null) она игнорирует совсем, а по номеру параметра обращается совершенно корректно
...
Рейтинг: 0 / 0
ADO + D7 + MSQL7 CreateParameter
    #32260874
Mik Prokoshin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Между прочим:
dstParent.Parameters.CreateParameter('kodar', ftInteger, pdInput, 4, nil );
И посмотрите ради интереса Parameters.Item[0].Name и Parameters.Item[0].DisplayName, чтобы выяснить, почему не берется по имени.
...
Рейтинг: 0 / 0
ADO + D7 + MSQL7 CreateParameter
    #32260928
gallus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Parameters.Item[0].Name - Param1
Parameters.Item[0].DisplayName - Param1
...
Рейтинг: 0 / 0
ADO + D7 + MSQL7 CreateParameter
    #32260954
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно. У меня работает без проблем такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  with ADODataSet1 do
  begin
    CommandText := 'select * from Table1 where Field = :Field';
 //   Parameters.CreateParameter('Field', ftInteger, pdInput,  4 , null);
    ShowMessage(Parameters.Items[ 0 ].Name);
    Parameters.ParamByName('Field').Value :=  3 ;
    Open;
  end;


Да и CreateParameter работает без проблем. Только он не нужен.
параметр автоматически создается. Правда у меня MS SQL 2000
MDAC 2.7 sp1 Win2000 Prof
...
Рейтинг: 0 / 0
ADO + D7 + MSQL7 CreateParameter
    #32260988
Ray Adams
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Погоди, а зачем надо делать рефреш??? Я когда на АДО писал, правда с базой на Access при написании динамических запросов с параметрами, никаких рефрешей не делал.

Код: plaintext
1.
2.
3.
4.
     qTemp.Close;
     qTemp.SQL.Text:='select distinct janr from movies where id=:id';
     qTemp.Parameters.ParamByName('id').Value:= 1 ;
     qTemp.Open;

ПРекрасно все пашет!
Но может с MS-SQL и не так. Хотя я считаю что с MS-SQL работать через АДО это изврат. Есть отличные компоненты для прямого доступа SQLQuery, я юзаю только их и проблем не знаю.
...
Рейтинг: 0 / 0
ADO + D7 + MSQL7 CreateParameter
    #32261044
gallus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо за совет, как не странно без Refresh работает
А по поводу АДО + SQL - изврат, отдельная тема, есть причины
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ADO + D7 + MSQL7 CreateParameter
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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