|
|
导航: |
论坛 -> 数据库专区
斑竹:liumazi,waterstone |
|
作者: |
|
2003/10/17 9:08:49 |
标题: |
|
加入我的收藏 |
楼主: |
ACESS数据库加了密码以后,为什么用ADOConnect就连不过去了。
----------------------------------------------
我有我风采 |
作者: |
|
2003/10/17 9:12:42 |
1楼: |
我也是 待解中ing...........
----------------------------------------------
|
作者: |
|
2003/10/17 9:15:20 |
2楼: |
我在连接字符串中已将密码写了进去,忘各位赐教。
----------------------------------------------
我有我风采
|
作者: |
|
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;
这是一个成功的例子.
----------------------------------------------
-
|
作者: |
|
2003/10/17 9:59:22 |
4楼: |
楼上的,这是什么意思,我要问ACCESS加了密码后如何连接。
----------------------------------------------
我有我风采
|
作者: |
|
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 );
----------------------------------------------
-
|
作者: |
|
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自动生成的,应该是没错的吧,但就会提示错误:"初始化提供者中发生错误,……工作组信息文件丢失,或是已被其它用户以独占方式打开"
----------------------------------------------
我有我风采
|
作者: |
|
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
----------------------------------------------
我有我风采
|
作者: |
|
2003/10/17 11:16:11 |
7楼: |
我就是用我写的那种方法来访问带访问密码的ACCESS数据库的啊,你能这样访问也行啊,方法是多种多样的吗,大家一起学习吗.
----------------------------------------------
-
|
作者: |
bitter (bitter) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2003/10/17 12:53:16 |
8楼: |
默认的登陆设置, AdoConnection的 logprompt=false
----------------------------------------------
-
|
作者: |
|
2003/10/17 13:04:57 |
9楼: |
谢谢polofigo (冰峰战舰) ★,我并没说你的错了,不好意思。 我只是在想,DELPHI的自动生成的连接串怎么会有问题?
----------------------------------------------
我有我风采
|
作者: |
|
2003/10/17 14:43:56 |
10楼: |
如果你知道密码就把密码设进去,然后把选项允许清楚密码选为false;
----------------------------------------------
我们共同努力,一切问题都会解决
|
|