![]() |
|
|
![]()
|
|
| Alexzz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Использовать из кода только не TSQLquery.Open, а TSQLquery.Execute -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| major4 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
установить админ тулз, и в них выбрать востанавление базы, указав файл что у вас имееться. оно само созадаст базу, потом из делфей будете конектиться к ней.
http://www.mysql.com/products/tools/administrator/ |
|||
|
||||
| Alexzz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 9.4.2007 Где: Латвия Репутация: нет Всего: 1 |
О!
Потопал качать. Добавлено @ 19:45 Упс... А вот метода Execute в списке свойств TSQLquery и нету. Есть две функции ExecSQL и ExecuteAction. А Execute нетуть. ![]() Это сообщение отредактировал(а) Alexzz - 5.7.2007, 19:47 |
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Ну значит юзать ExecSQL, то же самое что Execute.
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| fidres |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 15.11.2006 Репутация: 1 Всего: 1 |
я поступил бы проще.
если есть мускуль подходящей версии - можно поставить так же ЛОКАЛЬНО веб-сервак а-ля Denwer, закинуть на него подобие вашего форума и уже через веб-интерфейс ЛОКАЛЬНОГО форума - создавать/править/удалять/резать/кроить/ваять и всё остальное делать!.. ещё есть такая же фишка, но ставится отдельно, но гораздо мощнее! (это если базы непосредственно надо править/кроить/ваять.........) называется этот пакетик phpAdmin. для опытов всего-то необходимо: Denwer (в нём есть кстати свой MySQL+PHP+подобие Perl) + phpAdmin + движёк форума (если он бесплатный, типа, phpBB или IPB - ваще чудно! любую из версий можно отыскать в сети!) всё это устанавливается локально и ваши чудные базы будут лучше прежних! ;) я, кстати сказать, именно этим подчас и занимаюсь. З.Ы. и кстати, если я не ошибаюсь, в денвере есть уже phpAdmin! точно-точно! это просто я, помница, искал этот пакет поновей и устанавливал его дополнительно... отдельно. кстати, есть ещё один неплохой пакет для веб-разработки - XAMPP. тоже можно вполне приспокойненько найти и скачать в сети. Это сообщение отредактировал(а) fidres - 1.10.2007, 15:35 --------------------
Исправьте ошибку в слове <ХЕРОШО> и я скажу Вам оптимист Вы или пессимист. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |