delhide ado connection in kullandıgı çift tıklayıp build edildiği ekranı nasıl cıkarabilirim ve bu cıkardıgım ekrandan girilen bilgileri nasıl alabilirim yardımcı olursanız sevinirim.
run time da hangi database e baglanmak istersem o database e baglanmak istiyorum bunuda secimli yapmak istiyorum o yuzdede ado connection nesnesine çift tıukladıgıumızda build dediğimizde gelen ekranı nasıl runtime da getirip secebilirim umarım anlatabilmişimdir
runtime da connection belirleme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 8
- Kayıt: 09 Tem 2003 02:57
- Konum: ankara
Re: runtime da connection belirleme
Kod: Tümünü seç
ADOConnection.ConnectionString :=
'Provider=SQLOLEDB.1;'+
'Persist Security Info = False;'+
'Initial Catalog = '+VeriTabani.text+';'+
'Data Source='+Sunucu.Text+';'+
'User ID = '+Kullanici.Text+';'+
'Password = '+Sifre.Text;
ADOConnection.connected:=true;
-
- Üye
- Mesajlar: 8
- Kayıt: 09 Tem 2003 02:57
- Konum: ankara
Re: runtime da connection belirleme
ben connection propertilerini ayarlamaktan değilde o propertileri hazırlarken ado connection da çift tıklanıp build şeçeneğini ben exe çalıştıktan sonra kullanıcıya gostermek istiyorum ben birden farklı database kullanıyorum oyuzdende driverlar değişecek ekrandan driverı secip nereye baglanmak istersem oraya baglanıcam
ister sql server olsun ister mysql olsun ister mdf file olsun ister oracle olsun fark etmeyecek bir sekilde yapmak istiyorum
ister sql server olsun ister mysql olsun ister mdf file olsun ister oracle olsun fark etmeyecek bir sekilde yapmak istiyorum
Re: runtime da connection belirleme
Kod: Tümünü seç
....
'Provider=SQLOLEDB.1;'+
....
-
- Üye
- Mesajlar: 8
- Kayıt: 09 Tem 2003 02:57
- Konum: ankara
Re: runtime da connection belirleme
interface
uses
SysUtils, Classes;
type
TConnectionStringBuilder = class(TComponent)
private
{ Private declarations }
FConnectionString : string;
function ADOConnectionString(_parentHandle: THandle; _initialString: WideString;
out _newString: string): Boolean;
function GetConnStr : string;
procedure SetConnStr(const _value : string);
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
function Execute : Boolean;
property ConnectionString : string read GetConnStr write SetConnStr;
end;
procedure Register;
implementation
uses OleDB, ComObj, ActiveX, Forms;
// Author: Wilfried Mestdagh
{I see always people manually building the connection string.
Wy not use the dialog that windows provide for us ? Of course
it is possible to use the PromptDataSource in ADODB, but this
give not the opportunity to see if the user has pressed OK or
Cancel, so we dont know when to save the changes. So I use this
code instead. I hope it benefit many people. Rgds, Wilfried}
function TConnectionStringBuilder.ADOConnectionString(_parentHandle: THandle;
_initialString: WideString;
out _newString: string): Boolean;
var
DataInit: IDataInitialize;
DBPrompt: IDBPromptInitialize;
DataSource: IUnknown;
InitStr: PWideChar;
begin
Result := False;
DataInit := CreateComObject(CLSID_DataLinks) as IDataInitialize;
if _initialString <> '' then
DataInit.GetDataSource(nil, CLSCTX_INPROC_SERVER, PWideChar(_initialString),
IUnknown, DataSource);
DBPrompt := CreateComObject(CLSID_DataLinks) as IDBPromptInitialize;
if Succeeded(DBPrompt.PromptDataSource(nil, _parentHandle,
DBPROMPTOPTIONS_PROPERTYSHEET, 0, nil, nil, IUnknown, DataSource)) then
begin
InitStr := nil;
DataInit.GetInitializationString(DataSource, True, InitStr);
_newString := InitStr;
Result := True;
end;
end;
function TConnectionStringBuilder.Execute : Boolean;
var initialString : WideString;
newString : string;
var res : Boolean;
begin
initialString := '';
newString := '';
res := ADOConnectionString(Application.Handle, initialString, newString);
if res then
FConnectionString := newString;
result := res;
end;
function TConnectionStringBuilder.GetConnStr : string;
begin
result := FConnectionString;
end;
procedure TConnectionStringBuilder.SetConnStr(const _value : string);
begin
FConnectionString := _value;
end;
procedure Register;
begin
RegisterComponents('Prestwood', [TConnectionStringBuilder]);
end;
end.
bu class ı kullanarak istediğimi yaptım genede sagolun
uses
SysUtils, Classes;
type
TConnectionStringBuilder = class(TComponent)
private
{ Private declarations }
FConnectionString : string;
function ADOConnectionString(_parentHandle: THandle; _initialString: WideString;
out _newString: string): Boolean;
function GetConnStr : string;
procedure SetConnStr(const _value : string);
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
function Execute : Boolean;
property ConnectionString : string read GetConnStr write SetConnStr;
end;
procedure Register;
implementation
uses OleDB, ComObj, ActiveX, Forms;
// Author: Wilfried Mestdagh
{I see always people manually building the connection string.
Wy not use the dialog that windows provide for us ? Of course
it is possible to use the PromptDataSource in ADODB, but this
give not the opportunity to see if the user has pressed OK or
Cancel, so we dont know when to save the changes. So I use this
code instead. I hope it benefit many people. Rgds, Wilfried}
function TConnectionStringBuilder.ADOConnectionString(_parentHandle: THandle;
_initialString: WideString;
out _newString: string): Boolean;
var
DataInit: IDataInitialize;
DBPrompt: IDBPromptInitialize;
DataSource: IUnknown;
InitStr: PWideChar;
begin
Result := False;
DataInit := CreateComObject(CLSID_DataLinks) as IDataInitialize;
if _initialString <> '' then
DataInit.GetDataSource(nil, CLSCTX_INPROC_SERVER, PWideChar(_initialString),
IUnknown, DataSource);
DBPrompt := CreateComObject(CLSID_DataLinks) as IDBPromptInitialize;
if Succeeded(DBPrompt.PromptDataSource(nil, _parentHandle,
DBPROMPTOPTIONS_PROPERTYSHEET, 0, nil, nil, IUnknown, DataSource)) then
begin
InitStr := nil;
DataInit.GetInitializationString(DataSource, True, InitStr);
_newString := InitStr;
Result := True;
end;
end;
function TConnectionStringBuilder.Execute : Boolean;
var initialString : WideString;
newString : string;
var res : Boolean;
begin
initialString := '';
newString := '';
res := ADOConnectionString(Application.Handle, initialString, newString);
if res then
FConnectionString := newString;
result := res;
end;
function TConnectionStringBuilder.GetConnStr : string;
begin
result := FConnectionString;
end;
procedure TConnectionStringBuilder.SetConnStr(const _value : string);
begin
FConnectionString := _value;
end;
procedure Register;
begin
RegisterComponents('Prestwood', [TConnectionStringBuilder]);
end;
end.
bu class ı kullanarak istediğimi yaptım genede sagolun
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
-
- Üye
- Mesajlar: 163
- Kayıt: 11 Eki 2005 10:44
- İletişim:
Re: runtime da connection belirleme
uses adodb;
procedure TForm1.Button1Click(Sender: TObject);
var
al : WideString;
begin
al:= (adodb.PromptDataSource(Handle,al));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
al : WideString;
begin
al:= (adodb.PromptDataSource(Handle,al));
end;
http://ibrahimcoban.com/
Lazarus, Kol-Ce,Delphi ve C#
Lazarus, Kol-Ce,Delphi ve C#