1.在数据库画板工作区中选择要导入数据的表,然后打开数据 *** 作画板,从菜单中选择Rows—Import,d出Select import file对话框。
2.选择要导入的数据文件
可导入的文件类型有两种:文本文件(*.txt)和dBase文件(*.dbf)。对于文本文件,要求它的每一行对应表中的一条记录,而且每个数据项之间由一个制表符分割。另外,不管哪种类型的文件,导入的数据一定要与表中对应列的数据类型相匹配。
3.保存
源程序建立
)首先在数据库中建立如下结构的表blobsave
字段名称数据类型备注
idchar( )primairy key index
s_pathchar( )
pic binary ( )
)在PB建立PBl库blobsave PBl
)在PBl库blobsave PBl中建立应用blobsave
在应用的open事件中设置数据库连接程序(本程序中采用的是odbc方式连接数据库 读者可根据自己所建立的数据库的不同选用不同的连接方式 以下连接数据库的代码也有所改动 至于连接不同的数据库的方法 请参考有关资料 本文不做详细介绍)
SQLCA DBMS = ODBC SQLCA AutoCommit = False SQLCA DBParm = Connectstring= DSN=blob connect open(w_main)
其中命令按钮cb_path的clicked中的代码格式如下 open(w_path)
其中命令按钮cb_dbblob的clicked中的代码格式如下 open(w_dbblob)
其中命令按钮cb_OLEblob的clicked中的代码格式如下 open(w_OLEblob)
) 建立数据窗口dw_blobsave
按照上文中建立数?荽翱诘腷lob列的方法建立数据窗口dw_blobsave如图所示
其中 add del save cancel retrieve等分别为数据窗口dw_blobsave的append row delete row update retrieve动作按钮
首先创建实例变量 OLEstorage stor
然后如图建立窗口w_path 其中数据窗口控件dw_ 的rowfocuschanged中的代码如下
long row_num row_num=dw_ getrow() if row_num >then ole_ insertfile(dw_ object s_path[row_num]) end if
其中数据窗口dw_ 的buttonclicked中的代码如下
if dwo name= cbselect then long row_num row_num=dw_ getrow() string filepath filename getfileopenname( 请选择备注文件 filepath filename) dw_ object s_path[row_num]=filepath ole_ insertfile(filepath) end if
保存窗口w_path
)建立窗口w_dbblob
打开w_path 把其另存为w_dbblob 改变数据窗口dw_ 的rowfocuschanged中的代码如下
blob text long row_num row_num=dw_ getrow() if row_num>then string id id = dw_ object id[row_num] sqlca automit=true selectblob pic into :text from blobsave where id = :id ole_ objectdata=text sqlca automit=false end if
改变数据窗口dw_ 的buttonclicked中的代码如下
long row_num if dwo name= cbselect then row_num=dw_ getrow() string filepath filename getfileopenname( 请选择备注文件 filepath filename) dw_ object s_path[row_num]=filepath ole_ insertfile(filepath) end if if dwo name= cbsave then string id sqlca automit = true blob text text = ole_ objectdata dw_ update() mit row_num=dw_ getrow() id=dw_ object id[row_num] updateblob blobsave set pic = :text where id = :id mit sqlca automit = FALSE dw_ retrieve() dw_ scrolltorow(row_num) end if 保存窗口w_dbblob
)建立窗口w_OLEblob
打开w_path 把其另存为w_OLEblob 在窗口w_OLEblob的open事件中写入以下代码
stor = create olestorage stor open( c:\p ole ) //打开或创建ole文件 在窗口w_OLEblob的close事件中写入以下代码 destroy stor
改变数据窗口dw_ 的rowfocuschanged中的代码如下
blob text long row_num row_num=dw_ getrow() if row_num>then string id id = dw_ object id[row_num] ole_ open(stor w +id) end if
改变数据窗口dw_ 的buttonclicked中的代码如下
long row_num if dwo name= cbselect then row_num=dw_ getrow() string filepath filename getfileopenname( 请选择备注文件 filepath filename) dw_ object s_path[row_num]=filepath ole_ insertfile(filepath) end if if dwo name= cbsave then string id row_num=dw_ getrow() id=dw_ object id[row_num] ole_ saveas(stor w +id) stor save() end if
保存窗口w_OLEblob 运行应用程序即可
三种方法的优缺点
方法一 文件保存在固定的路径下 数据库中存取文件路径和名称可以节省数据空间 避免了数据库过分膨胀 但备注文件必须在一定的目录下 不能丢失 且同一目录下文件不能重名 对文件的管理造成一定的困难 另外 在OLE控件中浏览显示备注文件时 由于每次都要调用服务器程序 所以速度较慢
方法二 在数据库中用blob类型或者varbinary类型字段存储备注文件 当文件存储在数据库中以后 就可以删除硬盘上原来的临时文件 不需要复杂的二进制文件管理 且数据库可以存储在网络服务器上 对数据的共享非常方便
lishixinzhi/Article/program/SQL/201311/16227
可以用DDE或ole方式 *** 控excel把数据库填到数据库中,只是这种方法不是很方便
客户端必须安装excel
执行效率较差,就是比较慢
格式更改,代码需要更改
所以,不建议直接将excel导入,可以用excel或其它文档编辑器将excel文件转换成带制表符的txt文件,再导入,实际的效率要高很多
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)