Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > SQL запрос. Неверный запрос. команда SHOW


Автор: sanek1990 18.11.2009, 17:34
Здравствуйте, у меня такой вопрос. Выполняю лабу по SQL. после изменения таблицы необходимо отбразить обновленную таблицу , для этого использую команду SHOW COLUMNS, но Delphi ругается на мой запрос

Код

procedure TForm2.Button5Click(Sender: TObject);
begin

{здесь  команды не важно какие}

memo1.Lines.Add ('SHOW COLUMNS FROM employees;');
IBQuery1.sql.Add(memo1.Text);
IBQuery1.ExecSQL;


Выдает такую ошибку
user posted image
не могу понять почему ругается на команду Show, ошибка в запросе ?? Буду благодарен за помощь!

Автор: Данкинг 18.11.2009, 18:42
А что за СУБД такая вообще с SQL-оператором "SHOW COLUMNS" ? smile 

И это:
Цитата(sanek1990 @  18.11.2009,  17:34 Найти цитируемый пост)
memo1.Lines.Add ('SHOW COLUMNS FROM employees;');
IBQuery1.sql.Add(memo1.Text);

А почему нельзя сразу добавить строку в IBQuery1, зачем через Memo ?

Автор: sanek1990 18.11.2009, 18:59
Цитата(Данкинг @ 18.11.2009,  18:42)
А что за СУБД такая вообще с SQL-оператором "SHOW COLUMNS" ? smile 

А почему нельзя сразу добавить строку в IBQuery1, зачем через Memo ?

IBConsole? честно не знаю...
нашел на этом сайте синтаксис
http://www.spravkaweb.ru/mysql/sql/altertable/rename

Цитата

А почему нельзя сразу добавить строку в IBQuery1, зачем через Memo ?


можно и без мемо конечно, просто так реализовано.

Автор: Данкинг 18.11.2009, 19:44
Цитата(sanek1990 @  18.11.2009,  18:59 Найти цитируемый пост)
IBConsole?

Что IBConsole? smile 

Цитата(sanek1990 @  18.11.2009,  18:59 Найти цитируемый пост)
честно не знаю...

Цитата(sanek1990 @  18.11.2009,  18:59 Найти цитируемый пост)
можно и без мемо конечно, просто так реализовано. 

Сначала разберись, что хочешь, затем сформулируй вопрос, а опосля уже его обдуманно задай. smile

Цитата(sanek1990 @  18.11.2009,  18:59 Найти цитируемый пост)
нашел на этом сайте синтаксис

Ты к MySQL подключаешься через IBX? smile  smile  smile 




Автор: Akella 18.11.2009, 22:08
Цитата(sanek1990 @  18.11.2009,  18:59 Найти цитируемый пост)
IBConsole? честно не знаю...

Что IBConsole?

Добавлено @ 22:14
Цитата(sanek1990 @  18.11.2009,  17:34 Найти цитируемый пост)
memo1.Lines.Add ('SHOW COLUMNS FROM employees;');
IBQuery1.sql.Add(memo1.Text);
IBQuery1.ExecSQL;

 smile  smile  smile 

а может проще так?
Код

IBQuery1.sql.Add('текст запроса');
IBQuery1.ExecSQL;


и ещё в очередной раз советую понять разницу между ExecSQL и Open.

Автор: sanek1990 19.11.2009, 12:26
Цитата(Данкинг @ 18.11.2009,  18:42)
А что за СУБД такая вообще с SQL-оператором "SHOW COLUMNS" ? 

СУБД с оператором SHOW - MySQL. Ошибку свою понял. smile 
мне  надо работать с СУБД InterBase.
ВОПРОС: необходимо вывести в DBGrid таблицу данных после добавления к таблице поля.   С помощью какого запроса это можно сделать?
Ответ: Запрос вида:
Код
 
select * from employees


выведет всю таблицу.


Цитата

а может проще так?

Да проще конечно, но вопрос не в этом. Это действие делается для того чтобы пользователь видел какой запрос выполняется при нажатии на определенную кнопку.
можно с мемо и так поработать, но это не важно, реализаций много может быть и все приведут к одному и тому же результату.

Код

s:=[S]SHOW COLUMNS FROM employees;[/S] select * from  employees;
IBQuery1.sql.Add(s);
IBQuery1.Open;
memo1.Lines.Add (s); // для того чтобы показать какая команда выполнилась 


Отличие ExecSQL от open: 
 при выполнении метода Open происходит (физическое) соединение с БД, выполнение SQL-запроса и дальнейшая визуализация полу-
ченных данных. При наличии в SQL-предложении команд INSERT, UPDATE,
DELETE следует вместо метода Open использовать метод ExecSQL (метод
Open используется только тогда, когда запрос предполагает возвращение
результата
 - т.е. используется команда SELECT).

Благадарю всех , за "пинки", чтобы сам разобрался! углубил свои знания по sql))  smile 

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