Прога состоит из двух форм. На первой размещены все компоненты и непосредственно вся работа в ней проводится, вторая - чисто настройки для подключения к базе (сервер, база, пользователь, пароль - 4 едита и батон).
Настройки упорно подставляют рута с пустым паролем, вместо текста, забиваемого в соответствующие едиты(на забиваемые в едиты хост и название базы компоненты вроде реагируют адекватно), не пойму в чем дело... наверное неправильно работаю с их записью в компоненты SimpleDataSet и SQLConnection.
Знаю, можно через LoginPromt := true работать с пользователем и паролем, но не хочу так, хочу именно "вручную"
Форма1(MainForm):
Код:
1 2 3 4 5 6 | ...
procedure TMainForm . FormShow(Sender: TObject);
begin
SettingsForm . ShowModal();
end ;
...
|
Форма2(SettingsForm):
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ...
procedure TSettingsForm . ConnectBtnClick(Sender: TObject);
begin
MainForm . SimpleDataSet1 . Active := false ;
MainForm . SQLConnection1 . Connected := false ;
MainForm . SimpleDataSet1 . Connection . Params . Clear;
MainForm . SQLConnection1 . Params . Clear;
MainForm . SQLConnection1 . Params . Add( 'DriverName=MySQL' );
MainForm . SimpleDataSet1 . Connection . Params . Add( 'DriverName=MySQL' ); MainForm . SQLConnection1 . Params . Add( 'HostName=' +SettingsForm . ServerEdit . Text); MainForm . SimpleDataSet1 . Connection . Params . Add( 'HostName=' +SettingsForm . ServerEdit . Text); MainForm . SQLConnection1 . Params . Add( 'DataBase=' +SettingsForm . BaseEdit . Text); MainForm . SimpleDataSet1 . Connection . Params . Add( 'DataBase=' +SettingsForm . BaseEdit . Text); MainForm . SQLConnection1 . Params . Add( 'User_Name=' +SettingsForm . UserEdit . Text); MainForm . SimpleDataSet1 . Connection . Params . Add( 'User_Name=' +SettingsForm . UserEdit . Text);
MainForm . SQLConnection1 . Params . Add( 'Password=' +PassEdit . Text);
MainForm . SimpleDataSet1 . Connection . Params . Add( 'Password=' +SettingsForm . PassEdit . Text);
MainForm . SQLConnection1 . Params . Add( 'BlobSize=-1' );
MainForm . SimpleDataSet1 . Connection . Params . Add( 'BlobSize=-1' );
MainForm . SQLConnection1 . Params . Add( 'ErrorResourceFile=' );
MainForm . SimpleDataSet1 . Connection . Params . Add( 'ErrorResourceFile=' );
MainForm . SQLConnection1 . Params . Add( 'LocaleCode=1251' );
MainForm . SimpleDataSet1 . Connection . Params . Add( 'LocaleCode=1251' );
MainForm . SimpleDataSet1 . Active := true ;
MainForm . SQLConnection1 . Connected := true ;
SettingsForm . Close();
end ;
...
|
На сколько я понял, параметры, заданные SimpleDataSet'у автоматически присваиваются SQLConnection'у, т.к. они "повязаны"

, однако, т.к. ничего не работает у меня, то в коде всеравно дублирую, как видите изменение параметров в последний компонент тоже.
Вот еще имеется вторая проблема такая:
на главной форме есть едит и кнопка, для осуществления простого, примитивнейшего поиска по таблице базы. Но вот незадача, Мускул не понимает кириллицу, вводимую в этот едит, т.е. выдает ошибку:
Код:
1 | Project Project1 . exe raised exception class EDatabaseError with message 'Uncnown Column "тут юникодная абракадабра"' in 'where clause". Process stoped. Use Step or Run to continue.
|
База в кодировке cp1251, пишу на Borland Delphi 7.
Листинг:
Код:
1 2 3 4 5 6 7 8 | ...
procedure TMainForm . SearchBtnClick(Sender: TObject);
begin
SimpleDataSet1 . Active := false ;
SimpleDataSet1 . DataSet . CommandText := 'SELECT * FROM tblname WHERE column1 LIKE ' +SearchEdit . Text+ ' or column2 LIKE ' +SearchEdit . Text+ ' or...' ;
SimpleDataSet1 . Active := true ;
end ;
...
|
Прошу подсобить чем-нить более опытных товарищей!
