dbf怎么传到mysql dbf文件导入sqlserver数据库

如何用php将mysql表导出为dbf文件

?

创新新互联,凭借十多年的成都网站设计、成都做网站经验,本着真心·诚心服务的企业理念服务于成都中小企业设计网站有上1000家案例。做网站建设,选创新互联公司

include_once("include.php");

$card=445;//接收$card

//英文字段转中文字段

function field_conv($en,$card){

global $DbUseDatabase,$DbMHost,$DbMUser,$DbMPass;

$db = new newquery($DbUseDatabase,$DbMHost,$DbMUser,$DbMPass);

$db-query("select fieldname from t_cardinfo where cardkind=$card and field ='$en'");

if($db-next_record()){

return $db-f(0);

}

else

return false;

}

function mysql_to_dbf($mysql_datasource,$source_table,$destination_dbf)

{

global $DbUseDatabase,$DbMHost,$DbMUser,$DbMPass,$card;

$link=mysql_connect($DbMHost,$DbMUser,$DbMPass) or exit("不能链接到数据库");

$operate=mysql_select_db($mysql_datasource,$link);

//连mysql数据源

$rs=mysql_query("SELECT * from ".$source_table." limit 0,1");

$number_of_fields=mysql_num_fields($rs);//取字段数量

//不要前面5个底层字段

for($field_counter=5;$field_counter$number_of_fields;$field_counter++)

{

$dbf_field_type=mysql_field_type($rs,$field_counter);

$dbf_field_name=mysql_field_name($rs,$field_counter);

$dbf_field_len=mysql_field_len($rs,$field_counter);

//print($dbf_field_name);

if(isset($point)){

unset($point);

array_pop($field);

}

switch($dbf_field_type)

{

case "string":

$dbf_field_name=substr(mysql_field_name($rs,$field_counter),0,10);

//自由表的字段名不能超过10,请注意

$dbf_field_len=mysql_field_len($rs,$field_counter);

if($dbf_field_len=255)

{

$dbf_field_len--;

}

$dbf_field_type="C";

break;

case "varchar":

$dbf_field_name=substr(mysql_field_name($rs,$field_counter),0,10);

//自由表的字段名不能超过10,请注意

$dbf_field_len=mysql_field_len($rs,$field_counter);

if($dbf_field_len=255)

{

$dbf_field_len--;

}

$dbf_field_type="C";

break;

case "decimal":

$dbf_field_name=substr(mysql_field_name($rs,$field_counter),0,10);

//自由表的字段名不能超过10,请注意

$dbf_field_len=mysql_field_len($rs,$field_counter);

if($dbf_field_len=255)

{

$dbf_field_len--;

}

$dbf_field_type="C";

break;

case "real":

$dbf_field_name=substr(mysql_field_name($rs,$field_counter),0,10);

//自由表的字段名不能超过10,请注意

$dbf_field_len=mysql_field_len($rs,$field_counter);

if($dbf_field_len=255)

{

$dbf_field_len--;

}

$dbf_field_type="N";

$dbf_field_len="10";

$point="0";

break;

case "date":

$dbf_field_type="D";

break;

}

$fieldname=field_conv($dbf_field_name,$card);

$fieldname=subcnstr($fieldname, 9, ''); //字段最长10个字符

$field[0]=$fieldname;

$field[1]=$dbf_field_type;

$field[2]=$dbf_field_len;

if(isset($point)) {

$field[3]=$point;

}

$dbf[]=$field;

}

$d = array_map(null, $dbf);

if (!dbase_create($destination_dbf,$dbf)){

print "strongError!/strong";

exit;

}

//else

// print "strongok!/strong";

//写入字段名完成!

$dbfp=dbase_open ($destination_dbf,2);

$rs=mysql_query("SELECT * from ".$source_table);

$field=mysql_num_fields($rs);

while($row = mysql_fetch_array($rs))

{

$i=0;

for($fieldcounter=5;$fieldcounter$field;$fieldcounter++)//不要前面5个底层字段

{

$field_name=mysql_field_name($rs,$fieldcounter);

$rows[$i]=$row[$field_name];

$i++;

}

dbase_add_record ($dbfp,$rows); //写入记录

}

//print_r($dbffield);

dbase_close($dbfp);

mysql_close($link);

}

mysql_to_dbf("nbw1-SY","t_cardcontent445","c:\a.dbf");

echo "scriptalert('导出完成!')/script";

?

怎么使用powerdesinger 16.5将oracle的表和数据转到mysql

1、工具的准备

1.1、安装Oracle SQL Developer,我是用的是最新版本,下载后解压到任意目录即可(不含中文,空格)。

1.2、下载mysql的驱动jar文件,官网地址查出后忘了,此处免费提供下载;下载后解压到任意目录

1.3、打开Oracle SQL Developer,菜单栏中选择 工具--首选项--数据库--第三方JDBC驱动程序中选择mysql驱动解压后的jar文件,然后点击确定。

2、建立Oracle数据库与用户(用来承载mysql移植来的数据)--此处操作后续补齐,网上资料很多,当然,此处也可以省略(如果你的项目中不需要额外的数据库和用户的话)

2.1、在数据库建好之后,为了给用户授予权限,我们创建一个管理员的连接(当然,你也可以在命令行中连接oracle完成授权操作)

2.2、建立用户并授予权限,授予权限(此处指你已经创建了自己的数据库,或者使用oracle默认的数据库)

另:此处提供简略版创建用户与表空间的结构,此处不做解释,后期补充

--创建临时表空间 aaaa意义:临时表空间,临时表空间文件

create temporary tablespace aaaa_temp

tempfile 'G:\software\Java_database\oracle\runtimebj\aaaa_temp.dbf'

size 32m

autoextend on

next 32m maxsize 2048m

extent management local;

--创建数据表空间 aaaa意义:表空间,表空间文件

create tablespaceaaaa

logging

datafile 'G:\software\Java_database\oracle\runtimebj\aaaa.dbf'

size 100m

autoextend on

next 32m maxsize 2048m

extent management local;

--创建用户并指定表空间 aaaa顺序意义:用户名,密码,表空间,临时表空间

create user aaaa identified byaaaa

default tablespaceaaaa temporary tablespaceaaaa_temp;

--授予message用户DBA角色的所有权限 此处的aaaa只表示用户名

GRANT DBA TOaaaa;

grant resource to aaaawith admin option; --需添加这句话否则连接的时候会报错...

2.3再次创建连接,使用新创建的用户连接

2.4、连接建立后,右键连接,移植资料档案库--关联移植资料档案库--点击确定

2.5、连接mysql(就是需要进行移植到的mysql数据库),点击选择数据库后确定

3、移植mysql中的表到数据库

3.1、在刚刚建立的mysql中选择需要进行移植的数据库(也可以点击加号,批量选择需要移植的表,此处移植整个数据库,所以我在数据库上右键了),右键选择捕获方案

等待

3.2、在刚捕获的模型中选择需要的数据库或者表等,点击转换为Oracle模型

3.3、设置数据映射,一般默认即可(但是我的项目中mysql使用了datetime和timestamp,如果默认会转为oracle中的date,从而失去了时分秒,如果必须需要十分秒的话,此处映射可以将timestamp--timestamp,但是datetime这里好像是无法转换为timestamp,只能后面手动修改了...悲剧...),此后点击应用,同样进入进度条

3.4、右键点击刚刚捕获的方案,因为在生成的时候,他会根据方案名称重新创建用户,并将生成的表存放到该用户下,所以建议重命名方案,将其修改为我们需要的用户名称(用户名与密码相同),用户名称也就是我们jdbc或者hibernate连接数据库时将要使用的名称。完成后点击生成。

3.5、生成建立表的sql语句,点击下列红色框按钮开始执行...等待

3.6、执行后,在创建连接,使用我们执行sql中的用户名密码(也就是方案名称),连接后,你会发现,表已经生成了

表移植完毕

4、数据的移植

4.1、右键上次我们创建的转换的模型,选择移动数据

4.2、选择源与目标(目标是我们刚刚建立表的那个连接)

4.3、进入移动数据进度条,等待后,数据移动完成。

请问使用excel在线编辑当新增列的时候MySQL应该怎么做存储呢!

MYsql具备导入其他数据库的功能,但EXCEl虽然可以当成数据库来存储数据,但他的若干工作表的存储方式,给EXCEL直接导入其他数据库带来麻烦。

建议使用EXCEL2003版本,将某一工作表数据存储为DBF格式,再将DBF格式数据导入到Mysql中。


本文名称:dbf怎么传到mysql dbf文件导入sqlserver数据库
文章起源:http://pwwzsj.com/article/dohcdjc.html