TTable의 DatabaseName에 여러 디렉토리에 나누어져있는 dbf파일의 경로를 직접넣
주는 방법으로 table을 open해서 하나의 테이블에 insert시키는데..
Too manu open database alias라는 에러메시지를 보이고 그 다음에 존재하는 dbf의
Open이 불가능합니다.
OS :WINNT, delphi5.0
참고로 제가 작성한 소스코드는..
procedure TFrmMapConvert.CollectPoint(rGetPath: string);
var
iFileHandle, iHandle: integer;
sLayerName, sGeoText: string;
TblDbf : TTable;
begin
iFileHandle := FileOpen(rGetPath, fmOpenRead);
if iFileHandle > 0 then
begin
FileRead(iFileHandle, FHeader, sizeof(FHeader));
TblDbf := TTable.Create(nil);
sLayerName := ExtractFileName(rGetPath);
sLayerName := ChangeFileExt(sLayerName, '.DBF');
******** 요부분에서 에러가 나옴니다 ********************** (변경된 dbf파일 갯수는 23717개이고 그 이후부는 위의 에러 메시지가 나옴)
TblDbf.DatabaseName := ExtractFilePath(rGetPath);
TblDbf.TableName := sLayerName;
TblDbf.Open;
TblDbf.First;
sLayerName := Copy(sLayerName, 0, Length(sLayerName) - 4);
iHandle := FileRead(iFileHandle, RHeader, sizeof(RHeader));
while iHandle <> 0 do
begin
sGeoText := TblDbf.FieldByName('GEO_TEXT').Asstring;
FileRead(iFileHandle, RPoint, sizeof(Rpoint));
if iHandle > 0 then
begin
try
with IBStoredProc1 do
begin
Prepare;
ParamByName('LayerName').AsString := sLayerName;
ParamByName('X').AsInteger := Round(RPoint.X);
ParamByName('Y').AsInteger := Round(RPoint.Y);
ParamByName('GEOTEXT').AsString := sGeoText;
ExecProc;
end;
except
end;
TblDbf.Next;
iHandle := FileRead(iFileHandle, RHeader, sizeof(RHeader));
end;
end;
TblDbf.Free;
end;
FileClose(iFileHandle);
end;
해결방법 좀 도와주시면 감사합니다..