|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
MySQL4 (DataSource+SQLConnection+SimpleDataSet+DBGrid) проблемы
Прога состоит из двух форм. На первой размещены все компоненты и непосредственно вся работа в ней проводится, вторая - чисто настройки для подключения к базе (сервер, база, пользователь, пароль - 4 едита и батон).
Настройки упорно подставляют рута с пустым паролем, вместо текста, забиваемого в соответствующие едиты(на забиваемые в едиты хост и название базы компоненты вроде реагируют адекватно), не пойму в чем дело... наверное неправильно работаю с их записью в компоненты SimpleDataSet и SQLConnection. Знаю, можно через LoginPromt := true работать с пользователем и паролем, но не хочу так, хочу именно "вручную" Форма1(MainForm): Код:
... procedure TMainForm.FormShow(Sender: TObject); begin SettingsForm.ShowModal(); end; ... Форма2(SettingsForm): Код:
... 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'у, т.к. они "повязаны" , однако, т.к. ничего не работает у меня, то в коде всеравно дублирую, как видите изменение параметров в последний компонент тоже. Вот еще имеется вторая проблема такая: на главной форме есть едит и кнопка, для осуществления простого, примитивнейшего поиска по таблице базы. Но вот незадача, Мускул не понимает кириллицу, вводимую в этот едит, т.е. выдает ошибку: Код:
Project Project1.exe raised exception class EDatabaseError with message 'Uncnown Column "тут юникодная абракадабра"' in 'where clause". Process stoped. Use Step or Run to continue. Листинг: Код:
... 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; ... Прошу подсобить чем-нить более опытных товарищей! |