Erik
User
 Junior Boarder
| Posts: 16 |   | Karma: 0 |
|
Ошибка в определении каталока с oci.dll
|
|
Posted: 2007/05/17 07:05 |
|
|
|
|
WIndows 2000, Delphi 5, Oracle Instant clinent 10.2
В модуле daADPhysOraclWrapper процедура procedure TOCILib.GetOCIPaths(const AVendorHome, AVendorLib: String); на строчке 1232 происходит path := ADExtractFieldName(path, i); При этом перезаписывается переменая path и происходит поиск только в первой подстраке пути. Вся остальная подстрока отбрасывается. У меня путь к Oracle клиенту находится в самом конце пути. Предлагаю заменить while i <= Length(path) do begin на type TAStr = Array of String; ... ArrStr: TAStr; ... StrToList(Path, ';', ArrStr); for i := 0 to Length(ArrStr)-1 do begin .... end;
procedure StrToList(const S, Separator: string; var Strs: TAStr; i: Integer = 0); var Posit, Size, j: Integer; Buf: String; begin Posit := 1; SetLength(Strs, 5); j := 0; while (Posit > 0) do begin Posit := TailPos(S, Separator, i+1); if Posit = 0 then Size := Length(S) else Size := Posit-i-1; Buf := Trim(Copy(S, i+1, Size)); i := Posit; if Buf <> '' then begin if j > Length(Strs)-1 then SetLength(Strs, j+5); Strs[j] := Buf; Inc(j); end; end; SetLength(Strs, j); end;
|
|