Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder и базы данных

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 96, средняя оценка - 4.70
Lord_Voodoo
Супер-модератор
8607 / 2228 / 61
Регистрация: 07.03.2007
Сообщений: 10,801
Завершенные тесты: 1
#1

Работа с методами Open и ExecSQL - C++ Builder БД

28.05.2011, 11:21. Просмотров 15677. Ответов 0
Метки нет (Все метки)

Честно скажу, устал повторять каждому второе одно и тоже, решил это все описать... и так в каких случаях используются методы ExecSQL (для некоторых классов Execute - PgDAC к примеру) и Open... Решение, как это не парадоксально, лежит на поверхности: жмем кнопку F1 (вторая кнопка в верхнем ряду клавиатура, по соседству с ESC) и читаем про эти методы... а написано там следующее:
void __fastcall Open(void); - Opens the dataset.

Description

Call Open to set the Active property for the dataset to true. When Active is true, data can be populated with data. It can read data from a database or other source (such as a provider). Depending on the CanModify property, active datasets can post changes.

Setting Active to true:

Triggers the BeforeOpen event handler if one is defined for the dataset.
Sets the dataset state to dsBrowse.
Establishes a way to fetch data (typically by opening a cursor).
Triggers the After Open event handler if one is defined for the dataset.

If an error occurs during the dataset open, dataset state is set to dsInactive, and any cursor is closed.
void __fastcall ExecSQL(void); - Executes the SQL statement for the query.

Description

Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).

Note: For SELECT statements, call Open instead of ExecSQL.

ExecSQL prepares the statement in SQL property for execution if it has not already been prepared. To speed performance, an application should ordinarily call Prepare before calling ExecSQL for the first time.
Выбираем ключевые для нас цитаты:
Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).
Note: For SELECT statements, call Open instead of ExecSQL.


для ленивых еще и переводчик использовать перевожу дословно:
Используйте ExecSQL для выполнения запросов, не возвращающих курсоры на данные (такие как INSERT, UPDATE, DELETE, and CREATE TABLE).
Для запроса SELECT вызывается Open вместо ExecSQL.

Отсюда вопрос, откуда появилась комбинация методов:
C++
1
2
Query->ExecSQL();
Query->Open();
18
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2011, 11:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Работа с методами Open и ExecSQL (C++ Builder БД):

OraQuery1->ExecSQL Ошибка - C++ Builder БД
Всем добрый вечер, ребята помогите разобраться есть программа с которой в базу должны писаться значения прописано это таким путем...

Параметризированный запрос к FireDAC ExecSQL - C++ Builder БД
Здравствуйте, помогите разобраться как передать параметры в запрос. Например в Delphi параметризированный запрос описывается так: ...

[ILINK32 Error] Fatal: Could not open .\Debug\Win32\Variant_1.ilf (project already open in IDE?) - C++ Builder
Fatal: Could not open .\Debug\Win32\Variant_1.ilf (project already open in IDE?) на русском Fatal: Не удалось открыть \ Debug \...

проблема с функцией ExecSQL (Too many open tables) - Delphi БД
Люди помогите в следующем. Использую Delphi 7, система Windows 7. Есть SQL запрос для добавления записей в таблицу (Paradox)....

Работа с методами - Java SE
Не получается разобраться с заданием, прошу помощи: -Написать static void power(double x, int n), который выпишет таблицу степеней х от...

Работа с методами! - Java SE
Доброго времени суток уважаемые эрудиты! Вопрос такой: -У меня есть метод который принимает данные из управляющего класса (например...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2011, 11:21
Привет! Вот еще темы с ответами:

Работа с методами - C#
Необходимо создать метод, который определяет количество заданных букв в строковой переменной; буква и строковая переменная передаются через...

ExecSQL возвращает что-нибудь? - Delphi
Добрый день. В делфи имеется такой код, реализующий вставку данны в .mdb файл. Он нормально работает. Но как сделать чтобы после успешного...

Таймер для Query.ExecSQL - Delphi
Как реализовать сабж? Точнее для меня главная проблема, это узнать когда запрос выполнится.

Работа с методами контроллера - C# MVC
public ActionResult OpenTrans(Transaction tmp) { db.Transactions.Add(tmp); db.SaveChanges(); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru