• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Помогите С Fdquery

Сергей

Юный кодер
Принятый Кодер
Регистрация
21 Май 2015
Сообщения
3
Баллы
28
Создаю Таблицу NewTable('Organization'):
procedure ConnectionSQL(Connection: TFDConnection; AFileName: string);
begin
With Connection do
begin
Connected:=false;
ConnectionName:='SQLiteConnection';
DriverName:='Sqlite';
LoginPrompt:=false;
Params.Clear;
Params.Values['Database']:=AFileName;
Params.Values['DriverID'] := 'SQLite';
Params.Values['FailIfMissing']:='False'; // При отсутствии базы - автосоздание ее
Connected:=true;
end;
end;

procedure TFormMain.NewTable(TabNamed : string);
var ConnectionType : TFDConnection;
QueryType : TFDQuery;
begin
ConnectionType := FDConnection1;
QueryType := FDQuery1;
//Подключение базы
ConnectionSQL(ConnectionType, DrivePath + 'Base.db');
with QueryType do
begin
Connection:=ConnectionType;
SQL.Clear; // Очистка от предыдущих запросов
SQL.Add('CREATE TABLE if not exists '+Trim(TabNamed)+' (id INTEGER PRIMARY KEY AUTOINCREMENT, Named VarChar(300), IdPro integer)'); // Создание таблицы в случае ее отсутствия
ExecSQL; // Выполнение запроса

SQL.Clear; // Очистка от предыдущих запросов
SQL.Add('SELECT * FROM '+Trim(TabNamed)); // Запрос на открытие таблицы
Open; // Открытие таблицы
Close;
end;
end;

Пытаюсь выгрузить с таблицы данные, с поля Named:
procedure TFormMain.LoadOrganization();
begin
Box.Clear;
NewTable('Organization');
with FDQuery1 do
begin
SQL.Clear; // Очистка от предыдущих запросов
SQL.Add('select * from Organization');
ExecSQL;
Open;
First;
while not Eof do
begin
Box.Items.Add(Trim(FieldByName('Named').AsString));
Next;
end;
Close; // Закрытие сессии
end;
end;

Все это выполняеться при запуске программ. База и таблица в ней создаються, но при выгрузке программа закрываеться. Как правильно выгрузить данные? Delphi XE5 и Android 4.4.2
 
мне кажется проблема тут :
Код:
procedure TFormMain.LoadOrganization();
begin
Box.Clear;
NewTable('Organization');
with FDQuery1 do
begin
SQL.Clear; // Очистка от предыдущих запросов
SQL.Add('select * from Organization');
ExecSQL;
Open;
First;
while not Eof do
begin
Box.Items.Add(Trim(FieldByName('Named').AsString));
Next;
end;
end;
Close; // Закрытие сессии
end;
 
мне кажется проблема тут :
Код:
procedure TFormMain.LoadOrganization();
begin
Box.Clear;
NewTable('Organization');
with FDQuery1 do
begin
SQL.Clear; // Очистка от предыдущих запросов
SQL.Add('select * from Organization');
ExecSQL;
Open;
First;
while not Eof do
begin
Box.Items.Add(Trim(FieldByName('Named').AsString));
Next;
end;
end;
Close; // Закрытие сессии
end;
Закрываеться при использовании параметров ExecSQL; и Close;
Close; // Закрытие сессии - относиться к FDQuery1
Тоесть окончание роботы с FDQuery1, а вы его вынесли за пределы обработки, или этот параметр лишний?
 
Я его пока убрал, база создается. Пока работает. Запись уже понял как вносить, а вот как по параметру узнать значение?
 
Вверх Снизу