DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: 19137911446
今日帖子: 14
在线用户: 19
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 happyxhl (海柯) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 9:08:49
标题:
ACCESS数据库的连接问题 浏览:3633
加入我的收藏
楼主: ACESS数据库加了密码以后,为什么用ADOConnect就连不过去了。
----------------------------------------------
我有我风采
作者:
男 skertone (奇奇怪) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 9:12:42
1楼: 我也是  待解中ing...........
----------------------------------------------
按此在新窗口浏览图片 按此在新窗口浏览图片 按此在新窗口浏览图片
作者:
男 happyxhl (海柯) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 9:15:20
2楼: 我在连接字符串中已将密码写了进去,忘各位赐教。
----------------------------------------------
我有我风采
作者:
男 polofigo (冰峰战舰) ★☆☆☆☆ -
普通会员
2003/10/17 9:55:56
3楼: procedure Tform1.Button1Click(Sender: TObject);
const{ 一些常量声明,详细请参见adovbs.inc }
{ ---- CommandType的常量说明 ---- }
 adCmdUnknown = 0008;//未知,需要系统来判断,速度慢,为缺省值
 adCmdText = 0001;//命令语句如SQL语句
 adCmdTable = 0002;//数据表名称
 adCmdStoredProc = 0004;//存储过程名称

{ ---- CursorType的常量说明 ---- }
 adOpenForwardOnly = 0;//只能由前向后单向访问,为缺省值
 adOpenKeyset = 1;//可见其他用户对数据的修改, 但对其它用户的增加和删除不可见
 adOpenDynamic = 2;//其他用户对数据的增加修改和删除均可见
 adOpenStatic = 3;//其他用户对数据的增加修改和删除均不可见

{---- LockType的常量说明 ---}
 adLockReadOnly = 1;//只读,为缺省值
 adLockPessimistic = 2;//在修改时,按单个记录锁定
 adLockOptimistic = 3;//在修改后更新时,按单个记录锁定
 adLockBatchOptimistic = 4;//在成批更新时记录锁定

var
   AConnection, ARecordSet : variant;
   longintTemp : integer;
   strTemp : string;
   intIndex,len,sequence: integer;
   buff:array [0..256] of char;


begin
AConnection:=CreateOleObject('ADODB.Connection') ;
AConnection.open('Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Octopus\Oct2003.mdb',','chrdwhdhxt');
ARecordSet:=CreateOleObject('ADODB.RecordSet') ;
ARecordSet.Open('select dtTime1,dtTime2,cEffect,cReceived,sCardID,sCom,cAtt,sType,sType,sOperator from tLogs where dtTime2 > now - #23:59:59#- #23:59:59# ',AConnection,adOpenStatic,adLockOptimistic,adCmdText );

 memo1.lines.clear;
  {显示各个域的域名}
  strTemp := ';
  for intIndex := 0 to ARecordSet.Fields.count - 1 do
   strTemp := strTemp + ARecordSet.Fields[intIndex].name+';';
  memo1.lines.add( strTemp );
  //random(9999);
  {显示各个域的内容}
  //received:=0;
  while not ARecordSet.eof do
   begin
      strTemp :='"'+ DateTimeToStr( ARecordSet.Fields[0].value)+ '",'+
                '"'+DateTimeToStr( ARecordSet.Fields[1].value)+ '",'+
                FloatToStr( ARecordSet.Fields[2].value)+','+
                FloatToStr( ARecordSet.Fields[3].value)+','+
                '"'+ARecordSet.Fields[4].value +'",'+
                '"'+ARecordSet.Fields[5].value +'",'+
                FloatToStr( ARecordSet.Fields[6].value)+','+
                '"'+ARecordSet.Fields[7].value +'",'+
                '"'+ARecordSet.Fields[8].value +'",'+
                '"'+ARecordSet.Fields[9].value+'"'  ;
       len:=strlen(pchar(strTemp))+12;
       sequence:= random(9999);
       strTemp:=  format('%04d',[sequence])+'1'+format('%06d',[len])+':'+strTemp;
       strPcopy(buff,strTemp);
       nmudp1.sendbuffer(buff,len);
       memo1.lines.add( strTemp );
       ARecordSet.MoveNext;//移到下条,Next
   end;

  ARecordSet.close;
  AConnection.close;

end;

这是一个成功的例子.
----------------------------------------------
-
作者:
男 happyxhl (海柯) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 9:59:22
4楼: 楼上的,这是什么意思,我要问ACCESS加了密码后如何连接。
----------------------------------------------
我有我风采
作者:
男 polofigo (冰峰战舰) ★☆☆☆☆ -
普通会员
2003/10/17 10:00:19
4楼: 连数据库,关键是以下几句:
AConnection:=CreateOleObject('ADODB.Connection') 
AConnection.open('Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Octopus\Oct2003.mdb',','chrdwhdhxt');这一句是你要打开的数据库的路径,和用户名和密码.
ARecordSet:=CreateOleObject('ADODB.RecordSet') 
ARecordSet.Open('select dtTime1,dtTime2,cEffect,cReceived,sCardID,sCom,cAtt,sType,sType,sOperator from tLogs where dtTime2 > now - #23:59:59#- #23:59:59# ',AConnection,adOpenStatic,adLockOptimistic,adCmdText );
----------------------------------------------
-
作者:
男 happyxhl (海柯) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 10:19:21
5楼: 我知道是这样用
Provider=Microsoft.Jet.OLEDB.4.0;Password=aaa;User ID=Admin;Data Source=money.mdb;Mode=Share Deny None;Extended Properties="";Persist Security Info=True;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
这是DELPHI的ADO自动生成的,应该是没错的吧,但就会提示错误:"初始化提供者中发生错误,……工作组信息文件丢失,或是已被其它用户以独占方式打开"
----------------------------------------------
我有我风采
作者:
男 happyxhl (海柯) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 10:26:22
6楼: 问题已解决,用DELPHI的ADOConnect控件build出来的连接串是不行的,下面这样可以。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=money.mdb;Persist Security Info=true;Jet OLEDB:Database Password=abc

----------------------------------------------
我有我风采
作者:
男 polofigo (冰峰战舰) ★☆☆☆☆ -
普通会员
2003/10/17 11:16:11
7楼: 我就是用我写的那种方法来访问带访问密码的ACCESS数据库的啊,你能这样访问也行啊,方法是多种多样的吗,大家一起学习吗.
----------------------------------------------
-
作者:
男 bitter (bitter) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 12:53:16
8楼: 默认的登陆设置,
AdoConnection的 logprompt=false
----------------------------------------------
-
作者:
男 happyxhl (海柯) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 13:04:57
9楼: 谢谢polofigo (冰峰战舰) ★,我并没说你的错了,不好意思。
我只是在想,DELPHI的自动生成的连接串怎么会有问题?
----------------------------------------------
我有我风采
作者:
男 givemeliu (delphi傻瓜) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 14:43:56
10楼: 如果你知道密码就把密码设进去,然后把选项允许清楚密码选为false;
----------------------------------------------
我们共同努力,一切问题都会解决
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行74.21875毫秒 RSS