Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как подключиться к MySQL серверу из под Delphi? 
:(
    Опции темы
Alexzz
Дата 4.7.2007, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 9.4.2007
Где: Латвия

Репутация: нет
Всего: 1



Возникла необходимость добавить в базу форума топики сохранённые в хтмл. Для этого нужно будет сформировать файл содержащий список SQL запросов на добавление всех нужных данных в базу. Никаких ошибок в файле уже не должно быть. Права на ошибку нет. Экспериментировать с рабочим форумом нельзя. Поэтому я решил создать копию базы данных у себя на компе локально. 
С форума сделано сохранение бэкапа всей базы данных. Это опять таки текстовый файл содержащий полный список SQL запросов, выполнив которые создаётся вся база данных с нуля.

Задача 1:
Передать SQL серверу все запросы последовательно чтобы база данных была создана.

Что я делал:
Опускаю где и каие мануалы по базам данных и по применению их в дельфи в инете я прочитал, но ни в одном из них нужной мне инфы я не обнаружил.
Пытался использовать компонент TQuery. В нём обязательно нужно выбрать базу данных из списка зарегистрированных в системе. Зарегистрировал пустую папку как базу данных типа STANDART, выбрал её в компоненте. В поле SQL вбил один SQL запрос из файла:
CREATE TABLE `prf_admin_logs` (
  `id` bigint(20) NOT NULL auto_increment,
  `act` varchar(255) default NULL,
  `code` varchar(255) default NULL,
  `member_id` int(10) default NULL,
  `ctime` int(10) default NULL,
  `note` text,
  `ip_address` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Вылетела ошибка, синтаксис не понят. Опускаю несколько часов трах-тибидоха, в итоге обнаружил, что если поудалять лишнее из строки то она проходит в таком виде:
CREATE TABLE prf_admin_logs (id bigint, act varchar(255), code varchar(255), member_id int, ctime int, ip_address varchar(255))
При этом в указанной папке создаётся файл prf_admin_logs.db содержащий перечисленные поля. Но это мне не подходит. Это получается что синтаксис из файла нужно отфильтровывать и круто сокращать. После долгих экспериментов понял, что ничто на моём компе не способно распознать синтаксис SQL запросов из файла. Тогда скачал и установил MySQL точно такой версии как указана в данных форума. Сервер запустил, из командной строки вбил команду на создание базы данных, задал пароль. Опускаю подробности как я понял что с компонентом TQuery ничего не получится. Кинул на форму компоненты TSQLconnection и TSQLquery, в поле PARAMS задал сервер - localhost и вбил имя созданной базы данных. Установил Connected в True - о.к., запросило пароль, ввёл, ошибок не возникло. В поле SQL второго компонента скопировал тот-же запрос что привёл выше. Установил ACTIVE:=true и получил ошибку - Cursor not returned from sql или что-то в таком стиле. Вот на этом месте я окончательно застрял. Пытался всячески менять тест запроса, но получал другие ошибки, например ошибки синтаксиса и т.п.

Всё. На все эти эксперименты ушло почти трое суток. Я в тупике. Нужен толковый совет. Что я делаю не так, или о чём я ещё не знаю, что надо знать?

Это сообщение отредактировал(а) Alexzz - 4.7.2007, 23:13
PM WWW ICQ MSN   Вверх
Vas
Дата 5.7.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Цитата(Alexzz @  4.7.2007,  23:11 Найти цитируемый пост)
Установил ACTIVE:=true и получил ошибку - Cursor not returned from sql или что-то в таком стиле. Вот на этом месте я окончательно застрял. Пытался всячески менять тест запроса, но получал другие ошибки, например ошибки синтаксиса и т.п.

Использовать из кода только не TSQLquery.Open, а TSQLquery.Execute smile Ну и собсно RTFM про Open и Execute   smile 


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
major4
Дата 5.7.2007, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.7.2007

Репутация: нет
Всего: нет



установить админ тулз, и в них выбрать востанавление  базы, указав файл что у вас имееться. оно само созадаст базу, потом из делфей будете конектиться к ней. 
http://www.mysql.com/products/tools/administrator/
PM MAIL   Вверх
Alexzz
Дата 5.7.2007, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 9.4.2007
Где: Латвия

Репутация: нет
Всего: 1



О!
Потопал качать.

Добавлено @ 19:45
Цитата(Vas @  5.7.2007,  14:43 Найти цитируемый пост)
Использовать из кода только не TSQLquery.Open, а TSQLquery.Execute 
Упс... А вот метода Execute в списке свойств TSQLquery и нету. Есть две функции ExecSQL и ExecuteAction. А Execute нетуть. user posted image


Это сообщение отредактировал(а) Alexzz - 5.7.2007, 19:47
PM WWW ICQ MSN   Вверх
Vas
Дата 6.7.2007, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Ну значит юзать ExecSQL, то же самое что Execute.


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
fidres
Дата 1.10.2007, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 15.11.2006

Репутация: 1
Всего: 1



я поступил бы проще.
если есть мускуль подходящей версии - можно поставить так же ЛОКАЛЬНО веб-сервак а-ля Denwer, закинуть на него подобие вашего форума и уже через веб-интерфейс ЛОКАЛЬНОГО форума - создавать/править/удалять/резать/кроить/ваять и всё остальное делать!..
ещё есть такая же фишка, но ставится отдельно, но гораздо мощнее! (это если базы непосредственно надо править/кроить/ваять.........)
называется этот пакетик phpAdmin.
для опытов всего-то необходимо: Denwer (в нём есть кстати свой MySQL+PHP+подобие Perl) + phpAdmin + движёк форума (если он бесплатный, типа, phpBB или IPB - ваще чудно! любую из версий можно отыскать в сети!)
всё это устанавливается локально и ваши чудные базы будут лучше прежних!
;)
я, кстати сказать, именно этим подчас и занимаюсь.

З.Ы. и кстати, если я не ошибаюсь, в денвере есть уже phpAdmin!
точно-точно! это просто я, помница, искал этот пакет поновей и устанавливал его дополнительно... отдельно.
кстати, есть ещё один неплохой пакет для веб-разработки - XAMPP.
тоже можно вполне приспокойненько найти и скачать в сети.

Это сообщение отредактировал(а) fidres - 1.10.2007, 15:35
--------------------
Исправьте ошибку в слове <ХЕРОШО> и я скажу Вам оптимист Вы или пессимист.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.2138 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.