Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Select... Незнаю что прописать 
:(
    Опции темы
krobs
Дата 22.3.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 9.12.2005
Где: Барнаул

Репутация: нет
Всего: нет



Delphi 7 +Access 2003
В ADOQuery1 в свойстве SQL прописал запрос:

Цитата

SELECT Students.FIO, Subjects.Name, Students.GroupNo, StudentToSubject.TestResult
FROM Subjects INNER JOIN (Students INNER JOIN StudentToSubject
ON Students.kod_student = StudentToSubject.kod_student)
ON Subjects.Kod_subject = StudentToSubject.Kod_subject


Этот запрос из моей БД в Access.

Делаю процедуру на кнопку, запускаю, ввожу ФИО в Edit1 вылезает ошибка типа:
Цитата

Ошибка синтаксиса (пропущен оператор) в выражении запроса 'Like "Вика%""

"Вика" - это Временные данные из БД
Может кто подскажет, пожалуйста, что можно сделать?
Процедура на Кнопку:
Цитата

procedure TForm3.Button1Click(Sender: TObject);
var
strField:string;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select Students.FIO, Subjects.Name, Students.GroupNo, StudentToSubject.TestResult from Students, Subjects, StudentToSubject where '+strField+' LIKE "'+Edit1.Text+'%"');
ADOQuery1.Open;
DataSource1.DataSet:=ADOQuery1;
end;


Это сообщение отредактировал(а) krobs - 22.3.2006, 22:36

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  st.zip 21,70 Kb
PM MAIL AOL   Вверх
Pakshin A. S.
Дата 22.3.2006, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



Код

with ADOQuery1 do
 begin
  Close;
  SQL.Text:='SELECT Students.FIO, Subjects.Name, Students.GroupNo, StudentToSubject.TestResult
FROM Subjects INNER JOIN (Students INNER JOIN StudentToSubject 
ON Students.kod_student = StudentToSubject.kod_student) 
ON Subjects.Kod_subject = StudentToSubject.Kod_subject WHERE Students.FIO LIKE ''' + Edit1.Text + ''';';
  Open;
 end;


Все связи между компонантами уже установлены до запуска программы...

Итого, если запрос выводил что-то, то мы прсто добавили условия отбора записи WHERE... Впринцепе, этого должно хватить...
PM   Вверх
krobs
Дата 22.3.2006, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 9.12.2005
Где: Барнаул

Репутация: нет
Всего: нет



Pakshin A. S.
Спасибо за ответ!
Но есть маленькая проблемка:
Прописываю я в процедуре этот фрагмент кода, как ты мне показал:
Код

SQL.Text:='SELECT Students.FIO, Subjects.Name, Students.GroupNo, StudentToSubject.TestResult
FROM Subjects INNER JOIN (Students INNER JOIN StudentToSubject 
ON Students.kod_student = StudentToSubject.kod_student) 
ON Subjects.Kod_subject = StudentToSubject.Kod_subject WHERE Students.FIO LIKE ''' + Edit1.Text+ ''';';
 

то строки:
Код

FROM Subjects INNER JOIN (Students INNER JOIN StudentToSubject 
ON Students.kod_student = StudentToSubject.kod_student) 
ON Subjects.Kod_subject = StudentToSubject.Kod_subject WHERE Students.FIO LIKE ''' + Edit1.Text+ ''';';

у меня остаются не заключенными в апострафы ( ' '), а отображаются обычным текстом (должны быть синим цветом) - не хочет запрос переноситься на другую строку. А если я всё это пишу водну строчку, то при запуске вылетает ошибка типа: строка Д/б 255 символов!

Это сообщение отредактировал(а) krobs - 22.3.2006, 23:22
PM MAIL AOL   Вверх
Pakshin A. S.
Дата 23.3.2006, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



Цитата(krobs @ 22.3.2006, 23:19 Найти цитируемый пост)
строка Д/б 255 символов!

через SQL.ADD построчно...
Добавлено @ 00:35
krobs, а у тебя в БД же есть запрос Access'овский... Он же работает в Access, значит и через Delphi пойдет...
Код

with SQL do
 begin
  Clear;
  Add('SELECT Students.FIO, Subjects.Name, Students.GroupNo, StudentToSubject.TestResult');
  Add('FROM Subjects INNER JOIN (Students INNER JOIN StudentToSubject ON Students.kod_student = StudentToSubject.kod_student) ON Subjects.Kod_subject = StudentToSubject.Kod_subject');
  Add('WHERE (((Students.FIO)=''' + Edit1.Text + '''));')
 end;

PM   Вверх
ADAM83
Дата 23.3.2006, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 13.1.2006

Репутация: нет
Всего: нет



krobs,
Цитата

у меня остаются не заключенными в апострафы ( ' '), а отображаются обычным текстом (должны быть синим цветом) - не хочет запрос переноситься на другую строку. А если я всё это пишу водну строчку, то при запуске вылетает ошибка типа: строка Д/б 255 символов!


пробуй вот так, чье мучится
Код

SQL.Text:='SELECT Students.FIO, Subjects.Name, Students.GroupNo, StudentToSubject.TestResult'+
     'FROM Subjects INNER JOIN (Students INNER JOIN StudentToSubject'+ 
     'ON Students.kod_student = StudentToSubject.kod_student) '+
     'ON Subjects.Kod_subject = StudentToSubject.Kod_subject WHERE Students.FIO LIKE ''' + Edit1.Text+ ''';';


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.