| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Как подключиться к MySQL серверу из под Delphi? |
| Автор: Alexzz 4.7.2007, 23:11 |
| Возникла необходимость добавить в базу форума топики сохранённые в хтмл. Для этого нужно будет сформировать файл содержащий список 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 или что-то в таком стиле. Вот на этом месте я окончательно застрял. Пытался всячески менять тест запроса, но получал другие ошибки, например ошибки синтаксиса и т.п. Всё. На все эти эксперименты ушло почти трое суток. Я в тупике. Нужен толковый совет. Что я делаю не так, или о чём я ещё не знаю, что надо знать? |
| Автор: major4 5.7.2007, 18:05 |
| установить админ тулз, и в них выбрать востанавление базы, указав файл что у вас имееться. оно само созадаст базу, потом из делфей будете конектиться к ней. http://www.mysql.com/products/tools/administrator/ |
| Автор: Alexzz 5.7.2007, 19:34 |
| О! Потопал качать. Добавлено @ 19:45 Упс... А вот метода Execute в списке свойств TSQLquery и нету. Есть две функции ExecSQL и ExecuteAction. А Execute нетуть. ![]() |
| Автор: Vas 6.7.2007, 06:44 |
| Ну значит юзать ExecSQL, то же самое что Execute. |
| Автор: fidres 1.10.2007, 15:32 |
| я поступил бы проще. если есть мускуль подходящей версии - можно поставить так же ЛОКАЛЬНО веб-сервак а-ля Denwer, закинуть на него подобие вашего форума и уже через веб-интерфейс ЛОКАЛЬНОГО форума - создавать/править/удалять/резать/кроить/ваять и всё остальное делать!.. ещё есть такая же фишка, но ставится отдельно, но гораздо мощнее! (это если базы непосредственно надо править/кроить/ваять.........) называется этот пакетик phpAdmin. для опытов всего-то необходимо: Denwer (в нём есть кстати свой MySQL+PHP+подобие Perl) + phpAdmin + движёк форума (если он бесплатный, типа, phpBB или IPB - ваще чудно! любую из версий можно отыскать в сети!) всё это устанавливается локально и ваши чудные базы будут лучше прежних! ;) я, кстати сказать, именно этим подчас и занимаюсь. З.Ы. и кстати, если я не ошибаюсь, в денвере есть уже phpAdmin! точно-точно! это просто я, помница, искал этот пакет поновей и устанавливал его дополнительно... отдельно. кстати, есть ещё один неплохой пакет для веб-разработки - XAMPP. тоже можно вполне приспокойненько найти и скачать в сети. |