Guest User

Untitled

a guest
Mar 2nd, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. function ConvertToUNCPath(AMappedDrive: string) : string;
  2. var
  3. lRemoteString : array[0..255] of char;
  4. lpRemote : PChar;
  5. lStringLen : Cardinal;
  6. begin
  7. lpRemote := @lRemoteString;
  8. lStringLen := 255;
  9. If WNetGetConnection(Pchar(ExtractFileDrive(AMappedDrive)) ,
  10. lpRemote,
  11. lStringLen) = NO_ERROR Then
  12. Result := lRemoteString
  13. else
  14. Result := ''; // No mapping found
  15. end;
  16.  
  17. function TDataModuleData.OpenGDBDatabase(AGDBName: string) : Boolean;
  18. var
  19. lDlgLogin: TFrmLogin;
  20. p : Integer;
  21. lUNC,
  22. lErrMsg : String;
  23. begin
  24. Result := False;
  25.  
  26. with FDConnection do // TFDConnection
  27. begin
  28. Close;
  29. TxOptions.Isolation := xiDirtyRead;
  30.  
  31. p := Pos(':',AGDBName);
  32. if p = 2 then
  33. begin
  34. lUNC := ConvertToUNCPath(Copy(AGDBName,1,2));
  35. if lUNC <> '' then
  36. begin
  37. lUNC := Copy(lUNC,3);
  38. p := pos('',lUNC);
  39. AGDBName := Copy(lUNC,p) + Copy(AGDBName,3);
  40. lUNC := copy(lUNC,1,p-1);
  41. end;
  42. end;
  43.  
  44. DriverName := S_FD_IBId;
  45. Params.Database := AGDBName;
  46. if lUNC <> '' then
  47. Params.Add('Server=' + lUNC)
  48. else
  49. Params.Add('Server=localhost'); // Not strictly necessary
  50.  
  51. Params.UserName := 'SYSDBA';
  52. Params.Password := 'masterkey';
  53.  
  54. try
  55. Open;
  56. Result := Connected;
  57. except
  58. on E:Exception do
  59. begin
  60. lErrMsg := LowerCase(E.Message);
  61. end;
  62. end;
  63. end;
  64. end;
Add Comment
Please, Sign In to add comment