hur.cn - 华软网

 热门搜索

数据备份问题,怎么老是提示备份失败?快来帮忙看看吧,先谢过各位了!!!!!!!!

  作者:未知    来源:网络    更新时间:2017/12/5
我要备份数据窗口中表的内容,写的脚本如下:
String curdir
int ck=0,sc=0
curdir=Space(256) 
GetCurrentDirectoryA(256,curdir)
curdir+="\backup"
if cbx_1.checked=true then
ck+=1
dw_1.settransobject(sqlca)
   dw_1.retrieve()
sc+=dw_1.saveas(curdir+"\合同登记表.txt",Text!,false)
end if
if cbx_2.checked=true then
ck+=1
dw_2.settransobject(sqlca)
   dw_2.retrieve()
sc+=dw_2.saveas(curdir+"\收入登记表.txt",Text!,false)
end if
if ck=sc then
messagebox("提示","备份成功!")
else
messagebox("提示","备份失败!")
end if
可是不知道为什么我运行点备份的时候总是提示备份失败?哪里有错吗?高人们帮帮忙吧,郁闷中.......

------华软网友回答------
单不走调试……会有发现的。
------华软网友回复------
调试的时候看一下saveas()函数的返回值。
成功返回1,失败返回-1。
------华软网友回复------
谢谢百合,现在我知道问题出在哪了,Space(256) 256这个数字有什么设置说法吗?知道地说一声吧,谢谢了!
------华软网友回复------
谁知道呀,帮帮忙指点一下,这个数字的设置和路径到底有什么关系呢?
------华软网友回复------
GetCurrentDirectoryA()
功能:得到当前工作目录
声明格式FUNCTION ulong GetCurrentDirectoryA(ulong BufferLen, ref string currentdir)
LIBRARY "Kernel32.dll"
示例:
string ls_curdir
ulong l_buf
l_buf = 100
ls_curdir = space(l_buf) //为参数分配空间
GetCurrentDirectoryA(l_buf, ls_curdir)
MessageBox("当前目录", ls_curdir)
具体为什么,我也不是很清楚,都是这么用的。
------华软网友回复------
谢谢,真是感谢你的好意!
我在调试程序的时候才发现,原来定义不同的数字保存的路径最多到两级子目录比如:e:/jiao/buckup的目录下,不能到三级的子目录。所以才想问问这个数字到底是怎么定义的,还是谢谢了!
------华软网友回复------
space(n)生成一个由空格组成的指定字符个数的字符串
其实是为参数分配足够的内存。
------华软网友回复------
谢谢百合!可是我发现即使我用dw_1.seavas("e:\学习\合同登记表.txt,",Text!,false),返回值也是-1,你能帮我找找原因吗?谢谢了
------华软网友回复------
dw_1.seavas("e:\学习\合同登记表.txt,",Text!,false)这么用这个函数是不对的。给你讲一下这个函数的使用。
数据窗口控件的内容以指定格式保存到文件中
语法:dwcontrol.SaveAs ( { filename, saveastype, colheading } )
参数:dwcontrol 数据窗口控件
filename :可选参数string 类型其值是用于保存数据窗口内容的文件的文件名如果省略了filename 参数或filename 参数的值为空字符串"" 程序运行时PowerBuilder 将显示一个对话框让用户输入或选择文件名
saveastype 可选参数SaveAsType 枚举数据类型用于指定以何种方式保存数据窗口中的数据有效取值为
   Clipboard! 保存到剪贴板
   CSV! 以逗号分隔的形式保存数据
   dBASE2! 保存为dBASE-II 格式
   dBASE3! 保存为dBASE-III 格式
   DIF! 保存为数据内部交换格式Data Interchange Format
   Excel! 保存为Microsoft Excel 格式
   Excel5! 保存为Microsoft Excel 5 格式
   HTMLTable! 将数据保存为与数据窗口布局相对应的HTML 格式
   PSReport! 保存为Powersoft Report (PSR)格式
   SQLInsert! SQL 语法
   SYLK! 保存为Microsoft Multiplan 格式
   Text! 缺省值以每行用回车符结束列之间使用Tab 字符分隔的格式保存数据
   WKS! 保存为Lotus 1-2-3 格式
   WK1! 保存为Lotus 1-2-3 格式
   WMF! 保存为Windows 元文件格式
colheading 可选参数boolean 类型指示是否在文件的开头加上数据窗口列的标题缺省值为TRUE 表示加列标题该参数指定为FALSE 时表示不加列标题需要注意的是对保存为dBASE 文件格式来说总是要加上列标题的
返回值:Integer 函数执行成功时返回1 发生错误时返回-1 如果任何参数的值为NULL 则SaveAs()函数返回NULL
用法:
如果调用SaveAs()函数时未指定任何参数那么PowerBuilder 将显示一个SaveAs 对话框让用户指定要保存的文件名以及文件格式.
如果数据窗口是复合风格的报表那么报表格式saveastype 参数指定为PSReport!是唯一合理的选择.
如果数据窗口的对象是RichText 表现风格那么把saveastype参数指定为PSReport!没有效果。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。