Hello
I have got the problem about the application of designed by Delphi3 C/S
to execute
in NT4+ServicePack4 above.
But the application can work normal in the environment of Win95/98
NT4+SP3.
When I have executed the application in NT4+ ServicePack4(or SP5
SP6),it returned
below messages:
1.Cannot perform this operation on a closed dataset.
2.external exception: EEFFACE
The external exception:EEFFACE what I had searched is about BCB and have
occured at TBlobstream.Read.
Who can proffer the solution for me and help me?
I Email Address is s...@ms1.rpticomp.com.tw
Below is the relative messages:
BDE:(v5.1.0.4)
Aliases:SECDB
Definition of SECDB
Type: MSACCESS
DATABASE NAME: c:\auth\sec.mdb
LANGDRIVER: ascii ANSI
OPEN MODE: READ/WRITE
Database:(Access97 SR-2)
Name: Sec.mdb
Table: secdat
Objects:
1. DataBase..
DataBase1:Tdatabase
Properties:
AliasName: SECDB
DatabaseName: sec2
HandleShared: False
KeepConnection: True
LoginPrompt: False
Name: DataBase1
Params: [Tstrings]
SessionName: Default
Tag: 0
Translsolation: tiReadCommitted
2.Table..
TblSecDat:Ttable
Properties:
Active: False
AutoCalcFields: True
CachedUpdates: False
Constraints: [TcheckConstraints]
DatabaseName: SECDB
Exclusive: False
Filtered:False
+FilterOptions:[]
IndexFiles: [TindexFiles]
IndexName: SECDAT1
Name: TblSecDat
ReadOnly: False
TableName:Secdat
TableType: ttDefault
Tag: 0
UpdateMode: upWhereAll
3.DataSource..
DataSource1:TDataSource
Properties:
AutoEdit: False
DataSet: TblSecDat
Enabled: True
Name: DataSource1
Tag: 0
Events:
OnDataChange: DataSource1DataChange
My Sub. Program is below:
procedure RsaShowForm.FormCreate(Sender: TObject);
begin
---------------------
with TblSecDat do
begin
Active := False;
DataBaseName := 'sec2';
try
Active := True;
TblSecDat.Last;
except
// do nothing
end;
end
---------------------
end;
procedure TRsaShowForm.ShowBinData;
var
------------------------
TmpBlobStream: TBlobStream;
-----------------------
begin
---------------------
Exp_Len := TblSecDat.FieldByName('exp_len').AsInteger;
Mod_Len := TblSecDat.FieldByName('Mod_Len').AsInteger;
public_key.Explen := Exp_Len;
public_key.ModLen := Mod_Len;
TmpBlobStream := TBlobStream.Create(TblSecDat.FieldByName('modulus')
as TBlobField, bmRead);
if TmpBlobStream <> nil then
begin
TmpBlobStream.Read(public_key.Modulus, public_key.ModLen);
TmpBlobStream.Free;
end
else
begin
ShowMessage('DB field moduls Create Fail.');
Exit;
end;
-----------------
end;
procedure TRsaShowForm.DataSource1DataChange(Sender: TObject;
Field: TField);
begin
ShowBinData;
end;
If someone can give me a clue, I will be very pleased!
Please do send it to me by E-mail in this newsgroep very quickly.
Your help will be much appreciated!
Best Regards
Stin (s...@ms1.rpticomp.com.tw)