Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2011, 22:13   #1
CRASH040
Пользователь
 
Регистрация: 24.05.2011
Сообщений: 12
Восклицание Проблема с sql запросом в Delphi

Привет помогите пожалуйста запутался! на данный момент проблема такая при выполнении ставлю флажок и сразу и вылезает такая ошибка:
параметр NUM_REP не имеет значение по умолчанию что это за параметр?

procedure TForm1.CheckListBox1Click(Sender: TObject);
var
s:STRING;
i,k:integer;
begin
with Form1.ADOQuery2 do begin close;
k:=0;
SQL.Clear;
SQL.Add ('SELECT Âóç.¹, Âóç.[Íàçâàíèå âóçà], Âóç.[Íàçâàíèå ñïåöèàëüíîñòè], Âóç.[Ôîðìà îáó÷åíèÿ], Âóç.[Âèä îáó÷åíèÿ], Âóç.[Êîíêóðñ ïðîøëîãî ãîäà], Âóç.[Ïëàòà çà îáó÷åíèå]');
SQL.Add (' FROM Âóç ');
s:='';
for i:=0 to CheckListBox1.Items.Count - 1 do
if CheckListBox1.Checked[i] then
begin
f k=0 then
s:=s+(' NUM_REP ='+CheckListBox1.Items[i])
ELSE
s:=s+(' OR NUM_REP ='+CheckListBox1.Items[i]);
k:=1;
END;
if s<>'' then
SQL.Add(' where '+s);
Open;
Datasource1.dataset:=AdoQuery2;
end; end;
Изображения
Тип файла: jpg 1.jpg (13.5 Кб, 110 просмотров)

Последний раз редактировалось CRASH040; 24.05.2011 в 22:21.
CRASH040 вне форума Ответить с цитированием
Старый 24.05.2011, 22:49   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
параметр NUM_REP не имеет значение по умолчанию что это за параметр?
у ADO Access есть особенность. Все имена в запросе которые не сопоставить с БД он относит к параметрам. Т.е. в БД(в таблице) нет поля NUM_REP
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 25.05.2011, 18:16   #3
CRASH040
Пользователь
 
Регистрация: 24.05.2011
Сообщений: 12
Восклицание

С этим разобрался поменял поле .
s:=s+(' Название вуза ='+CheckListBox1.Items[i])
ELSE
s:=s+(' OR Название вуза ='+CheckListBox1.Items[i]);
k:=1;

теперь проблема где поменял название пишет пропущен оператор. только что там за оператор должен быть?
Изображения
Тип файла: jpg 2.jpg (13.0 Кб, 112 просмотров)

Последний раз редактировалось CRASH040; 25.05.2011 в 18:26.
CRASH040 вне форума Ответить с цитированием
Старый 25.05.2011, 18:32   #4
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Здравствуйте
Попробуйте так
Код:
s:=s+(' [Название вуза] ='+QuotedStr(CheckListBox1.Items[i]))
ELSE
s:=s+(' OR [Название вуза] ='+QuotedStr(CheckListBox1.Items[i]));
и придерживайтесь синтаксиса SQL Вашей базы данных, что Вам и показано, который Вы можете проверить в самой базе данных, без Delphi.
До свидания

Последний раз редактировалось OlegVE; 25.05.2011 в 19:48.
OlegVE вне форума Ответить с цитированием
Старый 25.05.2011, 18:40   #5
CRASH040
Пользователь
 
Регистрация: 24.05.2011
Сообщений: 12
По умолчанию

OlegVE

это не помогло вылетает таже ошибка.
CRASH040 вне форума Ответить с цитированием
Старый 25.05.2011, 19:00   #6
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Попробуйте так
Код:
s:=s+(' [Название вуза] ="'+CheckListBox1.Items[i]+'"')
ELSE
s:=s+(' OR [Название вуза] ="'+CheckListBox1.Items[i]+'"');
Плюс
Код:
SQL.Add(' where '+s+';');
Плюс сделайте это
Код:
SQL.Add ('SELECT Âóç.¹, Âóç.[Íàçâàíèå âóçà], Âóç.[Íàçâàíèå ñïåöèàëüíîñòè], Âóç.[Ôîðìà îáó÷åíèÿ],
 Âóç.[Âèä îáó÷åíèÿ], Âóç.[Êîíêóðñ ïðîøëîãî ãîäà], Âóç.[Ïëàòà çà îáó÷åíèå]');
SQL.Add (' FROM Âóç ');
более читаемым

Цитата:
и придерживайтесь синтаксиса SQL Вашей базы данных, что Вам и показано, который Вы можете проверить в самой базе данных, без Delphi.
Добавка
Разберитесь с Вашим OR (отметил синим выше). У Вас может появиться "WHERE OR" при первой неудаче
Код:
if CheckListBox1.Checked[i] then
Может k сделать строкой, и при первой удаче присвоить " OR " тогда
Код:
s:=s+( k+ ' NUM_REP ='+CheckListBox1.Items[i]);
k := " OR ";

Последний раз редактировалось OlegVE; 25.05.2011 в 19:50.
OlegVE вне форума Ответить с цитированием
Старый 25.05.2011, 19:27   #7
CRASH040
Пользователь
 
Регистрация: 24.05.2011
Сообщений: 12
Восклицание

вчера ещё так пробовал ничего не получается!
Я скинул прогу посмотри может получится, а то может у меня ещё там что не так и поэтому не работает.
Вложения
Тип файла: rar delphi.rar (333.9 Кб, 11 просмотров)
CRASH040 вне форума Ответить с цитированием
Старый 25.05.2011, 19:43   #8
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

По высланному Вами проекту:
1. Удалите из ADOQuery1 DataSource. У Вас стоит DataSource1.
2. [Название вуза] Слона то я и не приметил. Выше тоже подправил.

Последний раз редактировалось OlegVE; 25.05.2011 в 19:51.
OlegVE вне форума Ответить с цитированием
Старый 25.05.2011, 19:49   #9
CRASH040
Пользователь
 
Регистрация: 24.05.2011
Сообщений: 12
По умолчанию

OlegVE

огромное спасибо тебе очень помог)
CRASH040 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с запросом SQL lyle_200490 SQL, базы данных 2 20.11.2010 08:09
Проблема с SQL-запросом stscolt БД в Delphi 5 19.02.2010 16:47
Проблема с SQL запросом Bilargo БД в Delphi 4 27.11.2009 19:10
Проблема с SQL Запросом Worms БД в Delphi 7 13.01.2008 23:09