C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
SQL запрос на ADOQuery, Програмно
Racoon
Отправлено: 16.08.2006, 11:27


Ученик-кочегар

Группа: Участник
Сообщений: 19



Как создать SQL запрос в ADOQuery?
Надо упаковать открытую базу данных
Gedeon
Отправлено: 16.08.2006, 11:55


Ветеран

Группа: Модератор
Сообщений: 1742



ADOQuery1->SQL->Text = "шо вам надо";
Guest
Отправлено: 16.08.2006, 11:55


Не зарегистрирован







Если сервер такое позволяет, то узнать у него sql команду для данного действа, подсунуть её запросу ADOQuery->SQL->Text = "команда" и выполнить её ADOQuery->ExecSQL()
olegenty
Отправлено: 16.08.2006, 12:11


Ветеран

Группа: Модератор
Сообщений: 2412



а что значит "упаковать?" smile.gif
Racoon
Отправлено: 16.08.2006, 14:34


Ученик-кочегар

Группа: Участник
Сообщений: 19



Спасибо, но не работает.


ADOQuery3->SQL->Add("USE zavod SHARED");

ADOQuery3->Active=true;

......

ADOQuery3->SQL->Text="DELETE";

ADOQuery3->ExecSQL();

Выдает:
При выполнении произошли ошибки....
или
Таблица не открыта

Отредактировано Racoon — 16/08/2006, 14:42
Gedeon
Отправлено: 16.08.2006, 15:58


Ветеран

Группа: Модератор
Сообщений: 1742



Я чего-то не понимаю?
Guest
Отправлено: 16.08.2006, 16:10


Не зарегистрирован







QUOTE (Gedeon @ 16/08/2006, 15:58)
Я чего-то не понимаю?

Racoon пытается систему команд dBase применить там, где нужен SQL.

Как упаковать файл dbf поищите на форуме — писалось
для BDE DbiPackTable
для ADO не помню
Racoon
Отправлено: 17.08.2006, 07:16


Ученик-кочегар

Группа: Участник
Сообщений: 19



Так все таки как удалить через ADOQuery запись и выполнить команду UPDATE?
olegenty
Отправлено: 17.08.2006, 07:48


Ветеран

Группа: Модератор
Сообщений: 2412



см. стандарт SQL

удалить:
CODE

delete from <имя таблицы> where <критерий для удаления записей>

обновить:
CODE

update <имя таблицы> set
     <имя поля 1 для обновления> = <новое значение поля 1>
   , <имя поля 2 для обновления> = <новое значение поля 2>
   ...
   , <имя поля n для обновления> = <новое значение поля n>
where
   <критерий, по которому будут выбраны записи для обновления>


Отредактировано olegenty — 17/08/2006, 09:00
Racoon
Отправлено: 17.08.2006, 08:08


Ученик-кочегар

Группа: Участник
Сообщений: 19



Спасибо! Получилось.
А как можно фактически удалить запись из таблицы, а то они не удаляются, а только помечаются к удалению (таблица VFP 9, *.dbf)?
olegenty
Отправлено: 17.08.2006, 08:42


Ветеран

Группа: Модератор
Сообщений: 2412



это такое свойство *.dbf (да и любой БД: файлы данных не могут уменьшаться в размере без некоторых дополнительных усилий)

http://www.sql.ru/forum/actualthread.aspx?tid=243049

Вернуться в Работа с базами данных в C++Builder