고수님들 좀 도와주세염..
ADOConnection 과 ADOQuery 와 DataSource 를 이용해서
mdb 파일을 읽어와서 DBGrid 에 뿌려줄껀데.. 계속 에러나네염..
머가 문젠지 모르겠네염.. ^^;
그냥 코딩으로 짜려니까.. 이런 에러가..
Project comMoney.exe raised exception class.
EAccessViolation with message 'Access violation at address 00489F2A in module 'comMoney.exe' Read of Address '00000000'. Process stopped. Use Step or Run to continue.
MDB 파일은 오피스XP 의 엑세스에서 생성하였습니다.
좀 알려주세염
procedure TcomMoney_main.ToolButton_DBOpenClick(Sender: TObject);
var
strConnectDrv : string;
strQueryInsert : string;
nRecordCount : integer;
begin
// ADOConnection
strConnectDrv := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=;Data Source=..comMoney.mdb;' +
'Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";' +
'Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";' +
'Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;' +
'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';
ADOConnectionMain.Close;
ADOConnectionMain.ConnectionString := strConnectDrv;
ADOConnectionMain.ConnectionTimeout := 15;
ADOConnectionMain.KeepConnection := True;
ADOConnectionMain.LoginPrompt := False;
ADOConnectionMain.Mode := cmShareDenyNone;
ADOConnectionMain.Provider := 'Microsoft.Jet.OLEDB.4.0';
ADOConnectionMain.Connected := True;
ADOQueryMain.Connection := ADOConnectionMain;
ADOQueryMain.EnableBCD := True;
ADOQueryMain.SQL.Clear;
ADOQueryMain.SQL.Text := 'select * from customer';
ADOQueryMain.Active := True;
ADOQueryMain.Open;
// DataSource
DataSourceMain.DataSet.Close;
DataSourceMain.DataSet := ADOQueryMain;
DataSourceMain.DataSet.Open;
// DBGrid
DBGrid_ShowDB.DataSource := DataSourceMain;
DBGrid_ShowDB.Enabled := True;
DBGrid_ShowDB.ShowHint := True;
DBGrid_ShowDB.Hint := '디비그리드';
//DBGrid_ShowDB.PopupMenu := PopupMenuDBGrid;
DBGrid_ShowDB.ReadOnly := True;
DBGrid_ShowDB.TabStop := True;
DBGrid_ShowDB.Visible := True;
nRecordCount := DBGrid_ShowDB.DataSource.DataSet.RecordCount;
// statusBar 에 현재 레코드 총수를 출력
StatusBarMain.SimpleText := '총 레코드 : ' + intToStr(nRecordCount) + ' 건';
end;
나타나지 않던 ADOQuery 가..
쩝.. 혹시나 해서
ADOConnection 과 ADOQuery 와 DataSource 를
지우고서 다시 한후 맨먼저 DataSource 에 가서 DataSet 부분을
더블 클릭했더니 ㅡㅡ; 바로 되네염. 이런 된장..
그 다음부터는 거기서 안하고 바로 코딩해도 상관이 없더군염
좀 어이가 없네염.. ^^; 시간만 엄청 죽썼슴다.
ㅡㅡ; 저같은 노가다 하지 마세염..