Пакетная обработка DBF Foxpro файлов, Import в FoxPRO
-
Потребовалось импортировать данные из реляционный Mysql в ненавистный FoxPRO. Как всегда приходится использовать не менее ненавистный Perl
#!/usr/bin/perl
use XBase;
use DBI;
my $dsn = 'DBI:mysql:AF3:mysql.a';
my $db_user_name = 'root';
my $db_password = 'root';
my $dbh = DBI->connect($dsn, $db_user_name, $db_password);
sub mysql_2_dbf{
my $nfile = "$_[0]";
my $table = new XBase "struct/$_[0]" or die XBase->errstr;
my $newtable = $table->create("name" => $nfile, "codepage" => "cp1251");
$table->close();
$table = new XBase $nfile or die XBase->errstr;
my $sth = $dbh->prepare(qq{set names cp1251});
$sth->execute();
$sth = $dbh->prepare(qq{select * from $_[0]});
$sth->execute();
my $recno = 0;
while (my @data = $sth->fetchrow_array())
{
$table->set_record($recno,@data);
#print ($recno,@data);
$recno++;
}
if($recno>0){
print "expot to $_[0] -- $recno record\n";
}
$sth->finish();
$table->close();
}
my @table = ("FOND","FOND3","MOVE","OPIS","OPIS2");
while ( my $arg = shift @table ) {
mysql_2_dbf($arg);
}
Следует обратить внимание на функции создания структуры новой таблицы на основе эталонной table->create
На функцию добавления новой записи -- как ни странно необходимо указывать уникальный номер для вставки новой записи
А так же на то, что FoxPRO структура данных в самих полях может отличаться от нормальной, например данные могут выравниваться по краям или центру
текст недоступен
другие страницы раздела
- C/C++: Разбор параметров командной строки - unistd.h :: getopt
- С/C++: libconfig - библиотека для обработки конфигурационных файлов
- Python: strip split join
- jQuery: простые примеры
- python: работа со строками и словарями, формирование sql запросов
- Выбор платформы для презентаций
- Расширение Firefox собственным Меню -- это очень просто
- Разработка открытой альтернативы закрытому отраслевому ПО "Архивный Фонд"
- Django использование select_related для оптимизации работы
- Linux Django pyodbc MSSQL
- Sqlite3 работа с несколькими базами
- python ProxyError
- Python: сортировка списков
- Flask.admin FileAdmin проблема с локалями
- Flask restful сериализация sqlalchemy моделей в Json поток
комментарии (2)
2010-05-26 21:43:48
2010-05-26 22:20:38