怎样用代码来实现数据库的连接,不用控件。在动态链接库dll中连接数据库?
解决方案 »
- delphi如何测试远程计算机的webservice是否能访问?
- 大家:用过BusinessSkinForm 这个控件包没有呀? 效果怎么样? 还有三个控件怎么用呀 bsSkinData, ResourceStrData,compressstoredskin
- 我用这条语句时,如果查询的条件带分号或问号,就查询不到数据,怎样解决?
- 请问这是什么错误啊?编译delphi程序就会出现[Error] RLINK32: Too many resources to handle.
- 如何给控件加图标
- ActiveX的事件的问题,求教高手。
- 请教如何判断白底的BMP图片中的黑色图形为圆形?
- 怎样分别获取日期和时间?
- 谁有正式版的Delhp6.0注册码,帮帮忙,谢谢了!
- 关于Delphi的资源文件!
- 急急!!我下载了个组件包但不知道怎么安装到组件板上请帮忙
- memo指定行后添加???
PassWord: string; var sErr: string): boolean;
var
str:string;
begin
//判断连接控件是否存在
if not Assigned(Conn) then
begin
result:=false;
sErr:='所需 TADOConnection 控件不存在';
exit;
end;
//连接数据库
str:='Provider=SQLOLEDB.1;'+
'User ID='+Logid+';'+
'Password='+Password+';'+
'Initial Catalog='+DBName+';'+
'Data Source='+ServerName;
try
Conn.Close;
Conn.LoginPrompt:=false;
Conn.ConnectionString:=str;
Conn.Open;
except
result:=false;
sErr:=GetConnErrs(Conn);
exit;
end;
result:=true;
end;2. MDB
function TSeaFun.ConnMDB(Conn: TADOConnection; FileName: string;
var sErr: string; UserID,Password:string; ConnMode:integer): boolean;
var
str:string;
begin
//判断连接控件是否存在
if not Assigned(Conn) then
begin
result:=false;
sErr:='所需 TADOConnection 控件不存在';
exit;
end;
//连接 mdb 数据库
str:='Provider=Microsoft.Jet.OLEDB.4.0;'+
'Data Source='+filename+';'+
'User Id='+UserID+';Password='+Password;
try
Conn.Close;
Conn.Mode:=GetConnMode(ConnMode);
Conn.LoginPrompt:=false;
Conn.ConnectionString:=str;
Conn.Open;
except
result:=false;
sErr:=GetConnErrs(Conn);
exit;
end; result:=true;
end;3. dBase.DBF
function TSeaFun.ConnDBF(Conn: TADOConnection; FileName: string;
var sErr: string; ConnMode:integer): boolean;
var
str:string;
begin
//判断连接控件是否存在
if not Assigned(Conn) then
begin
result:=false;
sErr:='所需 TADOConnection 控件不存在';
exit;
end;
//连接数据库
str:='Provider=Microsoft.Jet.OLEDB.4.0;'+
'Data Source='+FileName+';'+
'Extended Properties=dBase 5.0;'+
'Persist Security Info=False';
try
Conn.Close;
Conn.Mode:=GetConnMode(ConnMode);
Conn.LoginPrompt:=false;
Conn.ConnectionString:=str;
Conn.Open;
except
result:=false;
sErr:=GetConnErrs(Conn);
exit;
end; result:=true;
end;4. DSN 的方式连接 DBF
function TSeaFun.ConnDBF_dsn(Conn: TADOConnection; DsnName: string;
var sErr: string; ConnMode: integer): boolean;
var
str:string;
begin
//判断连接控件是否存在
if not Assigned(Conn) then
begin
result:=false;
sErr:='所需 TADOConnection 控件不存在';
exit;
end;
//连接数据库
str:='Provider=MSDASQL.1;Persist Security Info=False;Data Source='+ DsnName;
try
Conn.Close;
Conn.Mode:=GetConnMode(ConnMode);
Conn.LoginPrompt:=false;
Conn.ConnectionString:=str;
Conn.Open;
except
result:=false;
sErr:=GetConnErrs(Conn);
exit;
end; result:=true;
end;
function TSeaFun.ConnDBF_odbc(Conn: TADOConnection; FileName: string;
var sErr: string; ConnMode: integer): boolean;
var
str:string;
begin
//判断连接控件是否存在
if not Assigned(Conn) then
begin
result:=false;
sErr:='所需 TADOConnection 控件不存在';
exit;
end;
//连接数据库
str:='Driver={Microsoft Visual Foxpro Driver};'+
'sourcetype=DBC;'+
'sourceDB='+ FileName +';'+
'Exclusive=No;';
try
Conn.Close;
Conn.Mode:=GetConnMode(ConnMode);
Conn.LoginPrompt:=false;
Conn.ConnectionString:=str;
Conn.Open;
except
result:=false;
sErr:=GetConnErrs(Conn);
exit;
end; result:=true;
end;6.利用 VFPOLEDB 连接 DBF 或 DBC
function TSeaFun.ConnVFP(Conn: TADOConnection; PathSource: string;
var sErr: string; ConnMode:integer): boolean;
var
str:string;
begin
//判断连接控件是否存在
if not Assigned(Conn) then
begin
result:=false;
sErr:='所需 TADOConnection 控件不存在';
exit;
end;
//连接数据库
str:='Provider=VFPOLEDB.1;'+
'Data Source='+ PathSource +';'+
'Password="";'+
'Mode=ReadWrite;'+
'Collating Sequence=MACHINE';
try
Conn.Close;
Conn.Mode:=GetConnMode(ConnMode);
Conn.LoginPrompt:=false;
Conn.ConnectionString:=str;
Conn.Open;
except
result:=false;
sErr:=GetConnErrs(Conn);
exit;
end; result:=true;
end;7. 连接 Excell 文件(Excel 也可以看作成数据库的)
function TSeaFun.ConnXLS(Conn: TADOConnection; FileName: string;
var sErr: string): boolean;
var
str:string;
begin
//判断连接控件是否存在
if not Assigned(Conn) then
begin
result:=false;
sErr:='所需 TADOConnection 控件不存在';
exit;
end; //判断文件是否存在
if not FileExists(FileName) then
begin
result:=false;
sErr:='文件 '+FileName+' 不存在';
exit;
end;
//连接数据库
str:='Provider=Microsoft.Jet.OLEDB.4.0;'+
'Data Source='+filename+';'+
'Extended Properties="Excel 8.0;HDR=Yes"';
try
Conn.Close;
Conn.LoginPrompt:=false;
Conn.ConnectionString:=str;
Conn.Open;
except
result:=false;
sErr:=GetConnErrs(Conn);
exit;
end; result:=true;
end;
所以,你看看那些 连接参数就可以了使用 VFPOLEDB 需要安装他的驱动程序function TSeaFun.GetConnErrs(Conn: TADOConnection): string;
var
i:integer;
begin
result:='';
if not Assigned(Conn) then
exit;
if Conn.Errors.Count>0 then
begin
for i:=0 to Conn.Errors.Count-1 do
if result='' then
result:=Conn.Errors.Item[i].Description
else
result:=result+#13#10+Conn.Errors.Item[i].Description;
end;
end;
否则,你怎么知道连接好了呢?(顺便一句:静下心来看看书吧,会比来 CSDN 问问题好多了)
b:tadoquery;
begin
CoInitialize(nil);
a.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pause;Data Source=SERVER2';
a.LoginPrompt:=false;
a.Connected:=true;
b.Connection:=a;
b.SQL.Clear;
b.Active:=false;
b.SQL.Add('select * from users where users='+quotedstr(number));
b.Active:=true;我用这一段代码,但编译没问题,运行就出错了
无窗体的情况下怎样在程序中止时有系统释放改对象所占用的资源?
b:tadoquery;
begin
a := tadoconnection.create;// 要先创建才行。
CoInitialize(nil);
a.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pause;Data Source=SERVER2';
a.LoginPrompt:=false;
a.Connected:=true;
b.Connection:=a;
b.SQL.Clear;
b.Active:=false;
b.SQL.Add('select * from users where users='+quotedstr(number));
b.Active:=true;
IF Conn.Connected then Conn.Connected := False; conn.ConnectionString:='FILE NAME='+ExtractFilePath(Application.ExeName)+'datebase.udl';
Try
Conn.open;
Except
MessageDlg('数据库连接失败!',Mterror,[mbok],0);
end;
function querystudentcheekcard(number:integer):boolean;stdcall;
当传过去随意的一个整数后,接收的number的值都为1243260,这是怎回事啊?