Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 13.03.2008, 12:45
acl acl вне форума
Прохожий
 
Регистрация: 27.02.2008
Сообщения: 23
Репутация: 10
По умолчанию

Спасибо огромное всем за ответы!!!
В общем пишу так:
ADOQuery2.SQL.Add('SELECT * FROM tbl_names WHERE uid=:uid');
ADOQuery2.Parameters.ParamByName('uid').Value := uid;
ADOQuery2.Open;
Вылетает ошибка, что такого параметра 'uid' нет... Что делать?
Ответить с цитированием
  #17  
Старый 13.03.2008, 18:37
acl acl вне форума
Прохожий
 
Регистрация: 27.02.2008
Сообщения: 23
Репутация: 10
По умолчанию

Проблему решил добавлением на форму второго ADOConnection, ADOQuery и ADODataSource....
Интересно, больше никак не возможно решить эту проблему?
Ответить с цитированием
  #18  
Старый 14.03.2008, 06:44
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Цитата из базы наний (скачаный вариант, на сайте этого примечания ненашел):

Цитата:
.....
Взято с http://delphiworld.narod.ru

Примечание Vit: я привёл этот код так как он был на сайте и его правильность целиком на совести автора. Однако приведенный код полон неточностей и могут быть проблемы при его выполнении. Давайте разберём что здесь не так и как сделать его работающим:
Code:
function TdmR3.GetCountForPeriod(LastDate: TDateTime; IsPlan: boolean): Integer;
var qu: TADOQuery;
S: string;
begin
{©Drkb v.3(2007): www.drkb.ru,
®Vit (Vitaly Nevzorov) - nevzorov@yahoo.com}
qu := TADOQuery.Create(nil);
try
// S := FormatDateTime('dd.mm.yy', LastDate); нам не нужна эта строка
qu.ConnectionString := Format(CONECT_STR, [db_file]); //Delphi автоматически приводит тип String в WideString
qu.SQL.Text := 'select count(*) from DecadaVal as d where d.LastDate=:LastDate and IsPlan=:IsPlan';
//Дельфи вовсе не автоматом распознает параметры, мы должны заставить его правильно провести парсинг параметров, для чего и служит следующая строка:
qu.Parameters.ParseSQL(qu.SQL.Text, true); //если кверя создана в дизайне и текст SQL присвоен в дизайне то эта строка не понадобится
// я предпочитаю обращаться к параметрам по имени, это избавит от многочисленных и сложных в отладке ошибок
qu.Parameters.ParamByName('LastDate').Value := LastDate;
qu.Parameters.ParamByName('IsPlan').Value := IsPlan;
qu.Open;
Result := qu.Fields[0].AsInteger;
finally
qu.Free;
end;
end;


Ответить с цитированием
  #19  
Старый 14.03.2008, 06:52
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Обрати внимание на
qu.Parameters.ParseSQL(qu.SQL.Text, true);
второй
ADODataSource вероятно у тебя и делает неявный вызов этого метода.
А по поводу второго ADOConnection:
просто выстави во втором ADOQuery2 свойство Connection в ADOConnection1
И еще - если ты второй квери используешь только с одним текстом запроса то его можно выставить во время разработки,
а во время выполнения только изменять значение параметра открывать квери и получать результат
Ответить с цитированием
  #20  
Старый 14.03.2008, 12:45
acl acl вне форума
Прохожий
 
Регистрация: 27.02.2008
Сообщения: 23
Репутация: 10
По умолчанию

Цитата:
Сообщение от s0Creator
Обрати внимание на
qu.Parameters.ParseSQL(qu.SQL.Text, true);
второй
ADODataSource вероятно у тебя и делает неявный вызов этого метода.
А по поводу второго ADOConnection:
просто выстави во втором ADOQuery2 свойство Connection в ADOConnection1
И еще - если ты второй квери используешь только с одним текстом запроса то его можно выставить во время разработки,
а во время выполнения только изменять значение параметра открывать квери и получать результат

Большое спасибо за полный ответ!

Что-то у меня неделя какая-то это не важная... Столкнулся с проблемой, за описание которой меня можно забанить, но деваться некуда опишу.... Дело в инструкции UPDATE. Когда писал на PHP + MySql такого небыло, но тут не могу никак заставить работать и все тут. Пишет сообщение, что ошибка в синтаксисе. В cамом MySQL прокатывает нормально.... УЖАС!!! Мне пора в отпууууууууууск похоже....
Ответить с цитированием
  #21  
Старый 14.03.2008, 18:17
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Ты б хоть запрос написал бы для просмотра.
хотя если уверен что он правильный попробуй отключить
проверку в ADOQuery (помоему ParamCheck )
у меня что-то подобное было в связке Kylix - PostgeSQL
Ответить с цитированием
  #22  
Старый 14.03.2008, 18:52
Аватар для mav_c
mav_c mav_c вне форума
Активный
 
Регистрация: 26.03.2007
Адрес: Москва
Сообщения: 287
Репутация: 30
По умолчанию

Цитата:
Сообщение от acl
Ээээ.... Если можно, то объясните безграмотному -- в чем разница между ними????

Open - Используется когда запрос возвращает данные - SELECT например

ExecSQL - При выполнении запросов не возвращающих данные
__________________
---------------------------------------------
Программирование - не профессия, а стиль жизни
Ответить с цитированием
  #23  
Старый 17.03.2008, 11:21
acl acl вне форума
Прохожий
 
Регистрация: 27.02.2008
Сообщения: 23
Репутация: 10
По умолчанию

Цитата:
Сообщение от s0Creator
Ты б хоть запрос написал бы для просмотра.
хотя если уверен что он правильный попробуй отключить
проверку в ADOQuery (помоему ParamCheck )
у меня что-то подобное было в связке Kylix - PostgeSQL
Спасибо, но уже разобрался. Сплю по 3 часа в сутки просто: ADOQuery.Clear; забыл вызвать просто...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:29.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter