SQLQuery1: Circular datasource references are not allowed

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

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

Ответить
mrkaban
новенький
Сообщения: 55
Зарегистрирован: 28.05.2016 08:48:18
Контактная информация:

SQLQuery1: Circular datasource references are not allowed

Сообщение mrkaban »

Здравствуйте, сразу предупреждаю, что я новичок.

Добавляю компоненты TSQLite3Connection, TDataSource, TSQLTransaction, TSQLQuery.

sqlite3.dll скопировал в папку проекта.

SQLite3Connection1
DatabaseName = test.sql
CharSet = UTF8
Transaction = SQLTransaction1

SQLTransaction1
Database = SQLite3Connection1

SQLQuery1
Database = SQLite3Connection1
Datasource = DataSource1

DataSource1
DataSet = SQLQuery1

Вылазит ошибка "SQLQuery1: Circular datasource references are not allowed."

Подскажите пожалуйста, в чем мой косяк?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3071
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

В SQLQuery1 убрать Datasource = DataSource1, в вашем случае там ничего не должно быть назначено
Аватара пользователя
DYUMON
постоялец
Сообщения: 234
Зарегистрирован: 11.03.2009 12:32:54
Контактная информация:

Сообщение DYUMON »

я же тебе там в блоге написал ответ, хотя там ты не то написал
mrkaban
новенький
Сообщения: 55
Зарегистрирован: 28.05.2016 08:48:18
Контактная информация:

Сообщение mrkaban »

DYUMON писал(а):я же тебе там в блоге написал ответ, хотя там ты не то написал

оо)) delphi-dev.ru? да, я опечатку допустил в комментарии.

Добавлено спустя 14 минут 20 секунд:
Re: SQLQuery1: Circular datasource references are not allowed
Убрал в SQLQuery1 Datasource = DataSource1.

добавил следующую строчку к событию нажатия по кнопке
SQLQuery1.Locate('Name','Архиватор WinRAR',[loCaseInsensitive, loPartialKey]);

при нажатии на неё пишет "Operation cannot be performed on an inactive dataset".

Добавлено спустя 16 минут 13 секунд:
Re: SQLQuery1: Circular datasource references are not allowed
а если вместо поиска попробовать доступ к данным

SQLQuery1.Open; // открываем данные
SQLQuery1.First; // становимся на первую запись
while not SQLQuery1.EOF do // цикл пока не конец набора данных
begin
// обрабатываем данные
SQLQuery1.Next; // переходим на следующую запись
end;
SQLQuery1.Close; // закрываем данные

тогда пишет ошибку "SQL statement not set."

PS: Отдельное спасибо за Вашу статью!!!
Аватара пользователя
DYUMON
постоялец
Сообщения: 234
Зарегистрирован: 11.03.2009 12:32:54
Контактная информация:

Сообщение DYUMON »

SQLQuery1.open;
mrkaban
новенький
Сообщения: 55
Зарегистрирован: 28.05.2016 08:48:18
Контактная информация:

Сообщение mrkaban »

DYUMON писал(а):SQLQuery1.open;

Сделал

Код: Выделить всё

 SQLQuery1.Open;
 SQLQuery1.Locate('Name','Архиватор WinRAR',[loCaseInsensitive, loPartialKey]);
 SQLQuery1.Close;


тогда пишет ошибку "SQL statement not set."
Аватара пользователя
DYUMON
постоялец
Сообщения: 234
Зарегистрирован: 11.03.2009 12:32:54
Контактная информация:

Сообщение DYUMON »

а ты у sqlquery добавил sql запрос в sqlquery1.sql.text:='запрос'
mrkaban
новенький
Сообщения: 55
Зарегистрирован: 28.05.2016 08:48:18
Контактная информация:

Сообщение mrkaban »

Всем спасибо большое, разобрались, я взял sql дамп из mysql и пытался его использовать.

Создал базу через SQLiteStudio и всё заработало!
Ответить