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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.05.2012, 12:43
ins813 ins813 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 32
Репутация: 10
По умолчанию Запрос к БД

Здравствуйте, как организовать запрос к БД MS SQL в Delphi через ADOquery чтобы выводил по определеном двум столбцам ?
Ответить с цитированием
  #2  
Старый 25.05.2012, 12:47
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  q: TADOQuery; //кверик
begin
  q:= TADOQuery.Create(nil); //создаем компонент
  q.Connection:= ADOConnection1; //задаем коннект
  q.SQL.Text:= 'select field1, field2 from table' //свои поля, своя таблица
  q.Open; //получаем набор данных
end;
__________________
Google в помощь
Ответить с цитированием
Этот пользователь сказал Спасибо Ildar-tsr за это полезное сообщение:
ins813 (25.05.2012)
  #3  
Старый 25.05.2012, 12:54
ins813 ins813 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 32
Репутация: 10
По умолчанию

только забыл сказать что выводить нужно в DBGrid ?
у меня есть запрос, но он не фурычит почему то
Form5.ADOQuery1.SQL.Clear;
Form5.ADOQuery1.Close;
Form5.ADOQuery1.SQL.Add('SELECT * FROM material WHERE material.[uch]=:электрохозяйства');
Form5.ADOQuery1.Active:=True;
Form5.ADOQuery1.Open;
Ответить с цитированием
  #4  
Старый 25.05.2012, 13:02
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

1.
Код:
Form5.ADOQuery1.Active:=True;
то же самое что и
Код:
Form5.ADOQuery1.Open;
2. Ты вводишь параметр, и не задаешь ему значение.
__________________
Google в помощь
Ответить с цитированием
  #5  
Старый 25.05.2012, 13:11
ins813 ins813 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 32
Репутация: 10
По умолчанию

Может так ?

Form5.ADOQuery1.SQL.Clear;
Form5.ADOQuery1.Close;
Form5.ADOQuery1.SQL.Add('SELECT * FROM material');;
Form5.ADOQuery1.Sql.Add('WHERE material.[uch]=:электрохозяйства');
Form5.ADOQuery1.Parameters.paramByName('электрохоз яйства').Value:=???;
Form5.ADOQuery1.Open;
Ответить с цитированием
  #6  
Старый 25.05.2012, 13:14
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

А что вообще хотелось бы получить? Все записи, у которых в поле uch значиться 'электрохозяйства'? Какого типа вообще поле uch?
__________________
Google в помощь
Ответить с цитированием
  #7  
Старый 25.05.2012, 13:17
ins813 ins813 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 32
Репутация: 10
По умолчанию

именно так, нужно чтобы все записи со знач-ем электрохозяйства выводились в DBGride
Ответить с цитированием
  #8  
Старый 25.05.2012, 13:18
ins813 ins813 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 32
Репутация: 10
По умолчанию

поле uch - varchar(100)
Ответить с цитированием
  #9  
Старый 25.05.2012, 13:25
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Ну тогда нафига параметр вводил
Код:
Form5.ADOQuery1.SQL.Add('SELECT * FROM material WHERE [uch]= ''электрохозяйства'' ');
P.S. Обрати внимание, что это не двойные кавычки ("), а дважды одинарные (').
__________________
Google в помощь
Ответить с цитированием
  #10  
Старый 25.05.2012, 13:29
ins813 ins813 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 32
Репутация: 10
По умолчанию

почему то ругается на 1 и 2 апострафы - [DCC Error] Unit5.pas(33): E2052 Unterminated string
Ответить с цитированием
  #11  
Старый 25.05.2012, 13:30
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Ты забыл кавычку закрыть.

Код:
Add('SELECT * FROM material WHERE [uch]= ''электрохозяйства'' ');
__________________
Google в помощь

Последний раз редактировалось Ildar-tsr, 25.05.2012 в 13:38.
Ответить с цитированием
  #12  
Старый 25.05.2012, 13:40
ins813 ins813 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 32
Репутация: 10
По умолчанию

Спасибо большое получилось и последнее, если по двум значениям сортировать, то через запятую (то в каком месте) или дублировать запрос ?
Ответить с цитированием
  #13  
Старый 25.05.2012, 13:45
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Код:
Form5.ADOQuery1.SQL.Add('SELECT * FROM material WHERE [uch]= ''электрохозяйства'' ');
Form5.ADOQuery1.SQL.Add('order by [uch], [другое поле]');

P.S. Вообще с твоей стороны некрасиво задавать вопрос, даже не пытаясь найти ответ в интернетах. Читай, пробуй, запоминай!
__________________
Google в помощь
Ответить с цитированием
  #14  
Старый 25.05.2012, 13:46
ins813 ins813 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 32
Репутация: 10
По умолчанию

Согласен, просто времени совершенно не хватает, еще раз благодарю !
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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