导航
  • 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

如何把sql的表以及数据(不包括存储过程以及触发器)通过程序转换成DBF格式并保存到软盘里去呢?

flyhot 2003-12-08 11:21:10
本人急需有关列程,,忘高手指点 :)
...全文
12 点赞 收藏 13
写回复
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyhot 2003-12-08
to: ldy 能否提供相关 列程?
回复
dotnba 2003-12-08
我一般都用DW ,然后SAVEAS
回复
hzhxxx 2003-12-08


使用 powerdesign 转换为 pdm 文件,最后自动生成为 dbf 文件
回复
flyhot 2003-12-08
有点方向了, dongdongxiao(蓝色的海) ( ) 是否有相关的列程,本人将不胜感激
回复
dongdongxiao 2003-12-08
用pipeline吧,把dbf文件做成odbc就可以了。
回复
bicesky 2003-12-08
ldy(罗大佑) 能否问你格问题,如果我现在是要将数据保存为支持foxpro2.5版本的dbf格式,是否也是这样写代码呢?但是saveas里没有支持这个格式的啊.那又该怎么办?
回复
tommyhuanglei 2003-12-08
OBJECT.SAVEAS
回复
flyhot 2003-12-08
好的。我调试调试,谢谢各位,,,
回复
dotnba 2003-12-08
当然,为了保证数据的完整和一致,还可以做得细一些
比如建立一个用于管理表的表。当在做这样的工作的时候,将表的状态设置一下
然后在程序别的地方判断,当在另存或者备份的时候,不能进行更新操作。
相当于LOCK
如果是MsSql:Select 语句可以跟上for update来锁定
回复
dotnba 2003-12-08
long ll_row
string error_syntaxfromSQL, error_create
string new_sql, new_syntax,ls_colname

ll_row = dw_1.insertrow(0)
dw_1.setItem(ll_row,"c_text","正在备份" + as_prompt + " ... ... ")
dw_1.scrolltorow(ll_row)
select top 1 syscolumns.name into :ls_colname
from syscolumns
where syscolumns.id = (select sysobjects.id
from sysobjects
where sysobjects.name = :as_tablename);
//new_sql = "SELECT count(" + ls_colname + ") FROM " + as_tablename
new_sql = "SELECT count(*) FROM " + as_tablename

DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;
PREPARE SQLSA FROM :new_sql;
OPEN DYNAMIC my_cursor ;
FETCH my_cursor INTO :il_count ;
CLOSE my_cursor ;

if il_count < 1 or isnull(il_count) then il_count = 1

new_sql = "SELECT * from " + as_tablename
new_syntax = SQLCA.SyntaxFromSQL(new_sql,"Style(Type=Form)",error_syntaxfromSQL)

IF Len(error_syntaxfromSQL) > 0 THEN
// Display errors
dw_1.setItem(ll_row,"c_text","正在备份" + as_prompt + " ... ... 备份当前数据失败!。")
ELSE
// Generate new DataWindow
dw_2.Create(new_syntax, error_create)
IF Len(error_create) > 0 THEN
dw_1.setItem(ll_row,"c_text","正在备份" + as_prompt + " ... ... 备份当前数据失败!。")
else
dw_2.SetTransObject(SQLCa)
dw_2.Retrieve()
if dw_2.SaveAs(as_path + as_tablename + '.TXT',Text!,False) = 1 then
dw_1.setItem(ll_row,"c_text","正在备份" + as_prompt + " ... ... 成功备份当前数据!。")
else
dw_1.setItem(ll_row,"c_text","正在备份" + as_prompt + " ... ... 备份当前数据失败!。")
end if
END IF
END IF
回复
klbt 2003-12-08
ldy(罗大佑)思路可行
回复
zhouweiwansui 2003-12-08
晕..
回复
888888888888 2003-12-08

controlname.SaveAs ( { filename, } { graphcontrol, saveastype, colheading } )

回复
发动态
发帖子
PowerBuilder
创建于2007-09-28

803

社区成员

PowerBuilder 相关问题讨论
申请成为版主
社区公告
暂无公告