救救我吧!(100分)

  • 主题发起人 主题发起人 xxlqust
  • 开始时间 开始时间
X

xxlqust

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大哥,如何从sybase数据库中导出文本格式的数据!
在线等,请大家帮帮忙!谢谢了!
 
没有用过,不过,像这种数据库应该就自带这个功能吧。你好好找一下。
 
下面是倒数据为文本文件的方法:

bcp databasename..tablename out tablename.txt -c -Usa -Puserpass -Sservername -Jcp850

具体参数的意思:

databasename:数据库名

tablename:表名

-U后面跟用户名

-S后面跟密码

-J后面跟的是字符集

-S后面跟服务器名

如果要倒出整个数据库中所有表的数据,请用下面的语句写成一个批处理文件:

copy con bcpout.sql

set nocount on
use databasename
go
select "bcp database.."+name+" out "+name+".txt -c -Usa -P -Sservername -Jcp850" from sysobjects where type ="U" order by name
go

^Z(或按F6存盘)

在DOS环境下,执行如下语句:

isql -Usa -P -Sservername -ibcpout.sql -obcpout.bat <enter>

这样,就把数据库中所有表的倒出语句生成了一个批处理。若要全部倒出来,直接执行就可以了。

-o的意思是输出路径及文件名

注意:sybase命令行工具是大小写敏感的,你可以先用bcp ?查一下这个工具的用法。
 
weiliu你好,可不可以写成存储过程
 
delphi中如何联结sybase数据库
 
用bcp导,给你帖段代码看看先,以前做的.
unit ufrmBill;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons;
type
TfrmBill = class(TForm)
btnExport: TBitBtn;
procedure btnExportClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmBill: TfrmBill;

procedure TfrmBill.btnExportClick(Sender: TObject);
var
sSQL,sTable: string;
bCreateProcess: Boolean;
lpStartupInfo: TStartupInfo;
lpProcessInfo: TProcessInformation;
begin
sSQL := 'bcp ' + DM.scData.Params.Values['DataBaseName'] + '..' + sTable+ //DataBase数据库名, sTable表名
' out ' + DM.sdBillfile.FileName +
' -S' + DM.scData.Params.Values['ServerName'] + //服务器名
' -U' + DM.scData.Params.Values['UserName'] + //用户名
' -P' + DM.scData.Params.Values['Password'] + //密码
' -c -t ,';

FillChar(lpStartupInfo, Sizeof(StartupInfo), #0);
lpStartupInfo.cb := Sizeof(StartupInfo);
lpStartupInfo.dwFlags := STARTF_USESHOWWINDOW;
lpStartupInfo.wShowWindow := SW_SHOW;
bCreateProcess := CreateProcessA(nil, PChar(sSQL), //创建进程,执行导出
nil, nil, True, NORMAL_PRIORITY_CLASS, nil, nil,
lpStartupInfo, lpProcessInfo);
if bCreateProcess then
begin
WaitForSingleObject(lpProcessInfo.hProcess, INFINITE);
CloseHandle(lpProcessInfo.hProcess);
CloseHandle(lpProcessInfo.hThread);
end
else
begin
Application.MessageBox(PChar('导出数据失败!请检查文件bcp.exe是否存在!'), '导出错误', MB_ICONERROR);
Exit;
end;
Application.MessageBox('导出数据完成!', '导出完成', MB_ICONINFORMATION);
end;
end
 
delphi中如何联结sybase数据库?
可以用BDE连接Sybase数据库,当让Sybase客户端要先配好。
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
857
SUNSTONE的Delphi笔记
S
S
回复
0
查看
783
SUNSTONE的Delphi笔记
S
后退
顶部