Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Не работает СОЛ запрос в Delphi 7


Автор: Mike324 29.6.2006, 15:22
Взял из учебника пример "Адресная книжка", набрал в Дельфи 7 код, фрагмент из которого приведен ниже
procedure TForm1.Button1Click(Sender: TObject);
var
buf:string[30];
begin
buf:=InputBox('Выборка информации из БД',
'1Введите информащию и щелкните на кнопке ОК','');
if buf ='' then exit;
with Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT Fam, Name, Tel, Email');
SQL.Add('From":adrbook:adrbook.db"');
SQL.Add('WPERE');
SQL.Add('(Fam = "'+ buf +'")');
SQL.Add('ORDER BY Fam, Name');
Open;
if RecordCount <> 0
then
DataSource1.DataSet:=Query1
else
ShowMessage('В БД нет записей, удовлетворяющих' +
#13 + 'критерию запроса.');
end;
end;
Но при запуске программы и введении  в InputBox фамилии и нажатии ОК
вылетает табличка
Debugger Exception Notification
Project Project1.exe raised exception class EDBEngineError with message 'Invalid use of keyword.
Token:(Fam
Line Number: 4'. Process stopped. Use Step or Run to continue.
Пытался ввести этот SQL запрос через компонент Query. При перестановке 
свойства Active из False в True  опять вылетает  эта табличка. В чем дело?  

Автор: skyboy 29.6.2006, 15:40
потому что надо "WHERE",а не "WPERE"!

Добавлено @ 15:43 
пара замечаний:
1. при размещении поста на форуме пользуй кнопку "Код"(справа вверху над полем ввода текста). Подсветка синтаксиса никогда не будет лишней.
2. При ошибках компилятор вылетает сразу же после обнаружения, но на следующей строчке. В твоеё ситуации сбой произошёл на линии 4, о чём компилятор тебе и указал. В смысле, 4-й линии запроса. Посмотрел бы на предыдущюю линию -- сразу бы заметил ошибку.
3. "SQL", а не "СОЛ", несмотря на некоторую схожесть букв. 

Автор: comtat 30.6.2006, 08:12
SQL РУЛИТ, так что читаем по нему маны smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)