|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.04.2008, 19:42 | #1 |
Новичок
Джуниор
Регистрация: 21.04.2008
Сообщений: 1
|
Конвертор
Подскажите пожалуйста существуют ли программы для конвертирования данных из формата dbf в frf, т.е. в MySQL. Нужно перенести данные из таблиц dbf в таблицы на MySQL.
|
21.04.2008, 19:53 | #2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Это же настолько элементарно...
Киньте на форму пару TTable, подключите одну из них к DBF-таблице, а другую - к FRF-таблице. Добавьте кнопку для начала преобразования и в его событии опишите последовательный проход по исходной таблице с созданием новых записей в таблице назначения. Добавьте ShowMessage, чтобы знать, когда эта бодяга завершится. И все. |
21.04.2008, 22:39 | #3 |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
проще говоря слова Михалыча, сделайте всё это в цикле
Код:
писал прямо здесь... |
22.04.2008, 12:51 | #4 | |
Пользователь
Регистрация: 22.04.2008
Сообщений: 16
|
Цитата:
И разве можно к MySQL подключиться просто через компонент TTable или нужно использовать какой-то другой компонент? |
|
22.04.2008, 12:54 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
TADOTable используй.
I'm learning to live...
|
22.04.2008, 13:23 | #6 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
FRFTable - это, как совершенно справедливо подсказал Стилет - ADOTable, для подключения к MySQL-таблице, а DBFTable - это простой TTable, его подключите к DBF-таблице. Да, и не забудьте им сделать Open, и DBFTable.First добавить в самое начало процедуры ... Последний раз редактировалось mihali4; 22.04.2008 в 13:25. |
|
24.04.2008, 21:09 | #7 |
Пользователь
Регистрация: 22.04.2008
Сообщений: 16
|
Подскажите в чём может быть проблема. Сделал всё как написали, подключаюсь к таблицам, переношу данные, для проверки получившуюся таблицу вывожу на экран в компонент TDBGrid, всё отображается нормально, закрываю программу, захожу на сервер MySQL, а там таблица как была так и осталась без изменений.
|
24.04.2008, 23:08 | #8 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
А если ее после завершения копирования закрыть (грамотно закрыв Connection), а потом снова открыть - данные будут отображаться в DBGrid? У вас ведь наверняка еще на этапе проектирования формы все коннекты открыты и никогда не закрываются (только если Дельфи закрыть). А это - дурной тон... |
|
25.04.2008, 00:48 | #9 |
Пользователь
Регистрация: 22.04.2008
Сообщений: 16
|
Все соединения на форме позакрывал. После закрытия соединения, и открытия его снова, в DBGrid перенесённые данные исчезают.
Ещё выводит постоянно такое предупреждение: Unit1.pas(83): For loop control variable must be simple local variable Вот код программы: procedure TForm1.Button2Click(Sender: TObject); begin //Table1:=TTable.Create(nil); Table1.Active:=false; Table1.DatabaseName:='C:\MyDatabase '; Table1.TableName:='MyTable.dbf'; Table1.TableType:=ttDBase; Table1.FieldDefs.Clear; Table1.FieldDefs.Add('ID',ftInteger ,0,True); Table1.FieldDefs.Add('Nomer_abon',f tInteger,0,False); Table1.FieldDefs.Add('Name',ftStrin g,40,False); Table1.FieldDefs.Add('Adress',ftStr ing,40,False); Table1.FieldDefs.Add('Potr',ftInteg er,0,False) ; Table1.FieldDefs.Add('Data',ftDate, 0,False); Table1.CreateTable; Table1.Active:=true; Table1.Insert; Table1.Fields[0].Value := '3'; Table1.Fields[1].Value := '3'; Table1.Fields[2].Value := 'Ivanov'; Table1.Fields[3].Value := 'Moscow'; Table1.Fields[4].Value := '10000'; Table1.Fields[5].Value := '10.02.2007'; Table1.Post //Table1.Free; end; procedure TForm1.Button3Click(Sender: TObject); begin Table1.Active:=true; ZConnection1.Connected:=true; ZTable1.Active:=true; Table1.First; while not Table1.Eof do begin ZTable1.Insert; for i:=0 to Table1.Fields.Count-1 do begin ZTable1.FieldByName(Table1.FieldDef s[i].Name).Value := Table1.Fields[i].Value; end; ZTable1.Post; Application.ProcessMessages; Table1.Next; end; Table1.Active:=false; ZConnection1.Connected:=false; ZTable1.Active:=false; end; end. |
25.04.2008, 01:17 | #10 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Нужно добавить: procedure TForm1.Button3Click(Sender: TObject); var i: integer; begin Не запоминается... Ну, не знаю. Вроде бы, на первый вгляд, ошибки не вижу. Единственное - на всякий случай поменял бы местами: ZTable1.Active:=false; ZConnection1.Connected:=false; Но это - так, от безысходности... Да, еще попробуйте ZConnection1.CommitTrans; перед закрытием. Кстати, вам не лень писать ZTable1.Active:=false; ZTable1.Active:=True; ? Есть же короткие аналоги - Open и Close... Последний раз редактировалось mihali4; 25.04.2008 в 01:24. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Конвертор валют... не понятен принцип работы | mid | Помощь студентам | 7 | 25.02.2011 23:33 |
конвертор exe в pas | engeneer | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 28.07.2008 11:21 |
Конвертор | ZORRO2005 | Microsoft Office Excel | 16 | 26.05.2008 10:50 |
Конвертор IB в FB | SunKnight | БД в Delphi | 1 | 29.03.2008 20:10 |