Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Moon Wolf
2 / 2 / 1
Регистрация: 05.12.2008
Сообщений: 9
1

DBExpress+DDL MySQL

01.02.2010, 15:29. Просмотров 1547. Ответов 7
Метки нет (Все метки)

Пытаюсь выполнить DDL скрипт создания БД в MySQL через dxExpress, используя метод TSQLConnection ExecuteDirect.
Если в скрипте используется только один DDL оператор, то все работает нормально, но если использовать два или более операторов, например:
SQL
1
2
DROP DATABASE IF EXISTS waydb;
CREATE DATABASE waydb;
TSQLConnection генерирует исключение.
Может кто-нибудь уже сталкивался с данной проблемой.
Всем заранее благодарен за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2010, 15:29
Ответы с готовыми решениями:

С++ Builder (dbExpress) + MySQL
Приветствую всех. Нуждаюсь в помощи. Нужна информация\гайды\книги\etc по...

Соединить приложение с СУБД MySQL через компоненту dbExpress
Хочу соединить некое приложение с СУБД MySQL через компоненту dbExpress. MySQL...

Бубны Borland C++ XE в составе RADStudio + dbExpress + Mysql сервер версии 5 и выше!
Собственно вопрос в теме, как реализовать коннект в RADStudio-ском Borland C++...

Извлечение данных из БД используя dbexpress
Доброго времени суток форумчане! Передо мной стоит задача извлеч данные из...

dbExpress подключение в отдельном потоке
Добрый день! Есть dll библиотека, подключающаяся к приложению. Но при...

7
oxotnik
1625 / 1098 / 75
Регистрация: 21.08.2008
Сообщений: 4,619
Записей в блоге: 1
01.02.2010, 15:50 2
Видимо для удаления БД необходимо закрывать транзакцию
0
Moon Wolf
2 / 2 / 1
Регистрация: 05.12.2008
Сообщений: 9
01.02.2010, 15:57  [ТС] 3
Цитата Сообщение от oxotnik Посмотреть сообщение
Видимо для удаления БД необходимо закрывать транзакцию
Тут дело в том, что любые два оператора DLL (ну или более) не хотят вместе выполняться. Например, два оператора CREATE TABLE тоже не выполняются ((
0
oxotnik
1625 / 1098 / 75
Регистрация: 21.08.2008
Сообщений: 4,619
Записей в блоге: 1
01.02.2010, 15:59 4
ну дык попробуй после каждого транзакцию закрывать
0
Moon Wolf
2 / 2 / 1
Регистрация: 05.12.2008
Сообщений: 9
01.02.2010, 16:05  [ТС] 5
Не получится выполнять каждый оператор по отдельности... у меня есть файлик, в котором лежит скрипт создания БД. Так вот мне надо его загрузить и создать с помощью него БД.
0
oxotnik
1625 / 1098 / 75
Регистрация: 21.08.2008
Сообщений: 4,619
Записей в блоге: 1
01.02.2010, 16:07 6
Цитата Сообщение от Moon Wolf Посмотреть сообщение
Не получится выполнять каждый оператор по отдельности... у меня есть файлик, в котором лежит скрипт создания БД. Так вот мне надо его загрузить и создать с помощью него БД.
Файлик кем и как сделан?
можно построчно/пооператорно его грузить с применением транзакций.
0
Moon Wolf
2 / 2 / 1
Регистрация: 05.12.2008
Сообщений: 9
01.02.2010, 16:20  [ТС] 7
Цитата Сообщение от oxotnik Посмотреть сообщение
Файлик кем и как сделан?
Через средство администрирования dbForge for MySQL (сгенерировал DDL по БД)

Цитата Сообщение от oxotnik Посмотреть сообщение
можно построчно/пооператорно его грузить с применением транзакций.
На счет этого тоже думал, но там и хранимые процедуры, в которых тоже DDL присутствует, так что это будет довольно сложно

Добавлено через 6 минут
Кстати, если выполнять запросы по одному
C++
1
2
3
4
5
TSQLConnection* mysql;
String sql="drop database waydb;";
mysql->ExecuteDirect(sql);
sql="create database waydb";
mysql->ExecuteDirect(sql);
То транзакцию можно не закрывать ))
0
oxotnik
1625 / 1098 / 75
Регистрация: 21.08.2008
Сообщений: 4,619
Записей в блоге: 1
01.02.2010, 16:42 8
Цитата Сообщение от Moon Wolf Посмотреть сообщение
То транзакцию можно не закрывать ))
а это смотря как драйвер настроен. Возможно он сам делает закрытие транзакции перед новой командой.
0
01.02.2010, 16:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2010, 16:42

Не устанавливается MySQL ODBC Driver. Как работать на C++ Builder с MySQL ?
Windows XP. Устанавливаю mysql-connector-odbc-noinstall-5.2.6-win32 Вместо...

Работа с БД MySQL (MySQL + BCB 6)
Почитал все что нашел в поиске... все сделал, как писали умные люди.. все...

Помогите с dbexpress и mysql
Я всё настроил и когда хочу поставить SqlConnection.Connected := true(в коде, в...


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

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

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