Чтение из базы данных

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Чтение из базы данных

Сообщение Valium » 16.03.2015 14:41:15

Вопрос настоящего новичка, простите. Как получить данные из базы данных? Не отобразить их в DBGrid, как показывается в тысячах примеров, а скопировать в свою переменную? Есть база, в ней есть таблица, выполняю код:
Код: Выделить всё
SQLQuery1.Active:=false;
    SQLQuery1.SQL.Clear;
    SQLQuery1.sql.add('SET character_set_client='+#39+'utf8'+#39+', character_set_connection='+#39+'cp1251'+#39+',character_set_results='+#39+'utf8'+#39+';');
    SQLQuery1.ExecSQL;
    SQLQuery1.SQL.Clear;
    SQLQuery1.sql.add('SELECT * from t1;');
    SQLQuery1.Open;

Всё хорошо, но дальше что? Мне нужно прочесть значения из базы и в соответствии с ними изменить нужные объекты на форме. Можете дать образчик кода?
Valium
незнакомец
 
Сообщения: 2
Зарегистрирован: 16.03.2015 14:08:22

Re: Чтение из базы данных

Сообщение ViruZ » 16.03.2015 15:51:43

Какая СУБД используется?
Вообще для работы с данными используется связка TxxxConnection+TSqlQuery, параметры подключения задаются в TxxxConnection, послевыполнения
SQLQuery1.SQL.Clear;
SQLQuery1.sql.add('SELECT * from t1;');
SQLQuery1.Open;

доступ к данным можно получить через
Код: Выделить всё
mystringvar := SqlQuery1.FieldByName('strfield').AsString;
myintvar := SqlQuery1.FielByName('intfield').AsInteger;
ViruZ
постоялец
 
Сообщения: 175
Зарегистрирован: 30.05.2005 17:41:12
Откуда: Украина

Re: Чтение из базы данных

Сообщение big teapot » 16.03.2015 15:54:48

Читаем значение из базы:
Edit1.Text:=SQLQuery1.FieldByName('field_xxx').AsString;
где field_xxx - имя нужного поля из таблицы tl.

изменяем значение в таблице tl
если поле field_xxx числовое
SQLQuery1.SQL.Text := 'update tl set field_xxx=' + Edit1.Text + ' where <здесь условие, какие записи менять>';

если поле field_xxx текстовое
SQLQuery1.SQL.Text := 'update tl set field_xxx=''' + Edit1.Text + ''' where <здесь условие, какие записи менять>';
SQLQuery1.ExecSQL;
SQLTransaction1.Commit;

А вообще, документация по работе с базами данных здесь
http://wiki.freepascal.org/Databases
http://wiki.freepascal.org/Working_With_TSQLQuery
big teapot
незнакомец
 
Сообщения: 1
Зарегистрирован: 16.03.2015 15:23:49

Re: Чтение из базы данных

Сообщение Valium » 16.03.2015 16:35:34

Спасибо :) То, что было нужно.
Valium
незнакомец
 
Сообщения: 2
Зарегистрирован: 16.03.2015 14:08:22


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 222

Рейтинг@Mail.ru