Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Sql + Delphi =\, Проблема
BuHHu nyx
сообщение 5.06.2007 - 20:59

Продвинутый новичок
**

Группа: Участник
Сообщений: 57
Регистрация: 26.07.2006
Пользователь №: 14563


Дали мне задание составить маленькую табличку(типа бд) и программку написать для неё... Да всё это дело на дельфях... Так всё бы ничего, если только не одна проблема - как обычно надо делать поиск. Ищу вот так:
Код
  with form1.Query1 do begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT Name, Type, Time, Actor, Memo');
  SQL.Add('FROM ":video:video.db"');
  SQL.Add('WHERE');
  SQL.Add('(Actor = "'+ Actor + '")');
  SQL.Add('ORDER BY Name');
  Open;
  end;
if Query1.RecordCount <> 0 then
  DataSource1.DataSet:=Query1
else
  ShowMessage('В БД ничего не найдено.');

Вот только не работает эта штука... Вот что выдаёт дебаггер(или кто там?):
И указывает после нажатия "Ок" на строку "end." про самом проекте ;-)
Что делать? Сроки горят...
Перейти в начало страницы
 
+Цитировать сообщение
leah
сообщение 5.06.2007 - 21:34

Постоялец форума
*****

Группа: Модератор
Сообщений: 967
Регистрация: 17.08.2004
Пользователь №: 4400


Цитата(BuHHu nyx @ 5.06.2007 - 21:59) *
Дали мне задание составить маленькую табличку(типа бд) и программку написать для неё... Да всё это дело на дельфях... Так всё бы ничего, если только не одна проблема - как обычно надо делать поиск. Ищу вот так:
Код
  with form1.Query1 do begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT Name, Type, Time, Actor, Memo');
  SQL.Add('FROM ":video:video.db"');
  SQL.Add('WHERE');
  SQL.Add('(Actor = "'+ Actor + '")');
  SQL.Add('ORDER BY Name');
  Open;
  end;
if Query1.RecordCount <> 0 then
  DataSource1.DataSet:=Query1
else
  ShowMessage('В БД ничего не найдено.');
Вот только не работает эта штука... Вот что выдаёт дебаггер(или кто там?):
И указывает после нажатия "Ок" на строку "end." про самом проекте ;-)
Что делать? Сроки горят...

Оно тебе пишет, что слово Time неправильное! Т.е. это слово зарезервировано в SQL также как слова: date, timestamp, integer, varchar, table, where, order и т.п.
Если сам создавал свою таблицу, то смени название столбца с Time на например TTime или указывай названия столбцов в одинарных кавычках. Но лучше сменить название поля.
Я бы на всякий случай еще и Type поменял бы.

Сообщение отредактировано leah - 5.06.2007 - 21:35
Перейти в начало страницы
 
+Цитировать сообщение
BuHHu nyx
сообщение 5.06.2007 - 22:14

Продвинутый новичок
**

Группа: Участник
Сообщений: 57
Регистрация: 26.07.2006
Пользователь №: 14563


Спасибо... Только всё равно поиск не работает... =\
И ещё: по идее вот это вот должно упорялочить таблицу по Name. Верно?
Код
  SQL.Add('SELECT *');
  SQL.Add('FROM ":video:video.db"');
  SQL.Add('ORDER BY Name');
  Open;

Но ничего, кроме этого не происходит:
Перейти в начало страницы
 
+Цитировать сообщение
leah
сообщение 5.06.2007 - 22:30

Постоялец форума
*****

Группа: Модератор
Сообщений: 967
Регистрация: 17.08.2004
Пользователь №: 4400


Цитата(BuHHu nyx @ 5.06.2007 - 23:14) *
Спасибо... Только всё равно поиск не работает... =\
И ещё: по идее вот это вот должно упорялочить таблицу по Name. Верно?
Код
  SQL.Add('SELECT *');
  SQL.Add('FROM ":video:video.db"');
  SQL.Add('ORDER BY Name');
  Open;
Но ничего, кроме этого не происходит:

Да верно! Сам запрос то исполняется не из дельфи? Я в дельфи не силен, просто увидел в первом посте явную ошибку в самом sql.

Вот посмотри, нашел тебе ]]>http://www.codenet.ru/progr/delphi/stat/SQL-Delphi.php]]>

Сообщение отредактировано leah - 5.06.2007 - 22:32
Перейти в начало страницы
 
+Цитировать сообщение
Oracle
сообщение 6.06.2007 - 13:35

Постоялец форума
*****
орден I степениорден V степени
Группа: Участник
Сообщений: 807
Регистрация: 15.08.2005
Пользователь №: 9323


Цитата(BuHHu nyx @ 5.06.2007 - 22:14) *
И ещё: по идее вот это вот должно упорялочить таблицу по Name. Верно?


Упорядочится вывод результата запроса, а не таблица. draz.gif
Перейти в начало страницы
 
+Цитировать сообщение
BuHHu nyx
сообщение 6.06.2007 - 20:56

Продвинутый новичок
**

Группа: Участник
Сообщений: 57
Регистрация: 26.07.2006
Пользователь №: 14563


Да, я это и хотел сказать =)
Всем спасибо, все свободны, всё разрулилось -)
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 19.04.2024 - 22:46