Nein, wenn abgebrochen wird, wird der original Connectionstring unverändert zurückgegeben. Das nützt mir aber nichts, weil es ja auch sein kann, das der User einen bestehenden Connectionstring unverändert übernimmt.
Delphi-Quellcode:
function EditConnectionString(Component: TComponent): Boolean;
var
PropInfo: PPropInfo;
NewConnStr,
InitialConnStr: WideString;
begin
Result := False;
with TConnEditForm.Create(Application) do
try
Caption := Format(SEditConnectionStringTitle, [Component.Owner.Name, DotSep,
Component.Name, SConnectionString]);
PropInfo := GetPropInfo(Component.ClassInfo, SConnectionString);
InitialConnStr := GetStrProp(Component, PropInfo);
NewConnStr := Edit(InitialConnStr);
if NewConnStr <> InitialConnStr then
begin
SetStrProp(Component, PropInfo, NewConnStr);
Result := True;
end;
finally
Free;
end;
end;
function TConnEditForm.Edit(ConnStr: WideString): WideString;
var
FileName: string;
begin
Result := ConnStr;
UseDataLinkFile.Checked := True;
if Pos(CT_FILENAME, ConnStr) = 1 then
begin
FileName := Copy(ConnStr, Length(CT_FILENAME)+1, MAX_PATH);
if ExtractFilePath(FileName) = (DataLinkDir + '\') then
DataLinkFile.Text := ExtractFileName(FileName) else
DataLinkFile.Text := FileName;
end else
begin
ConnectionString.Text := ConnStr;
UseConnectionString.Checked := True;
end;
SourceButtonClick(nil);
if ShowModal = mrOk then
if UseConnectionString.Checked then
Result := ConnectionString.Text
else if DataLinkFile.Text <> '' then
begin
if ExtractFilePath(DataLinkFile.Text) = '' then
Result := CT_FILENAME + DataLinkDir + '\' +DataLinkFile.Text else
Result := CT_FILENAME + DataLinkFile.Text
end
else
Result := '';
end;