请教一个数据窗口与DBF文件之间转换的格式问题!

zhhuang2002 2003-08-27 11:12:05
现将一个数据窗口内容(数值型)存储为一个DBF文件:
dw_1.saveas(docname,dBASE3!,true)
然后通过以下方法导入数据窗口中:
l_sqlstr='select * from docname'
dw_2.Create(l_sqlstr,...)//就是根据SQL语法创建窗口,具体写法一时忘了
然后从dw_2中取数据,可是只能当字符串取,即用getitemstring,而不能用getitemdecimal

为什么数值型内容经过DBF一倒变成字符型了?如何维持数值型,即在DBF中存为数值,载入dw_2也是数值并能用getitemdecimal正确读取.
...全文
43 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
klbt 2003-08-30
  • 打赏
  • 举报
回复
连夜奋战,钦佩!祝贺!
zhhuang2002 2003-08-30
  • 打赏
  • 举报
回复
是saveas的DBF中数据为字符型,已搞定!
zhhuang2002 2003-08-28
  • 打赏
  • 举报
回复
从DBF导入dw_2过程如下:
//---连接DBF数据库
sqlcs = create transaction
sqlcs.DBMS = "odbc"
sqlcs.dbparm = ProfileString(sys_config,"dbf","dbparm","")
sqlcs.autocommit = false
connect using sqlcs ;
//---选择DBF数据源文件
i = GetFileOpenName("文件选择", path_filename, filename, "DBF", "DBF文件 (*.DBF),*.DBF,所有文件(*.*),*.*")
//---创建DBF数据源预览窗口
sql_syntax = "SELECT * from " + path_filename
dwsyntax_str = SQLCS.SyntaxFromSQL(sql_syntax, "", l_error)
open(w_dbf)
dw_2 = w_dbf.dw_v
dw_2.Create(dwsyntax_str, l_error)
dw_2.reset()
dw_2.settransobject(sqlcs)
dw_2.retrieve()
-------------------------------------------------------------
结果是dw_2中数据内容只能是字符型,不能用getitemdecimal取

我之所以用getitemdecimal,是当DBF从另一vfox软件中导入时完全正确,它是数值型,但本PB程序自己用saveas保存的DBF为何只能是字符型?

问题是在dw_1.saveas? 还是因为dw_2.Create(dwsyntax_str, l_error)中要指定数据类型?



incats 2003-08-28
  • 打赏
  • 举报
回复
可以, 建立ODBC连接DBF.
flyerlxg 2003-08-28
  • 打赏
  • 举报
回复
第二个数据窗口的来源可不可以直接指向那个DBF呢?
eastpond 2003-08-28
  • 打赏
  • 举报
回复
没试过,不行就用楼上的方法吧
jdsnhan 2003-08-28
  • 打赏
  • 举报
回复
暂不管类型
dw_2.object.column[row]
jdsnhan 2003-08-28
  • 打赏
  • 举报
回复
dw_2.object.column[row],暂不考虑类型。
aty283 2003-08-28
  • 打赏
  • 举报
回复
up

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧