Поиск:

Ответ в темуСоздание новой темы Создание опроса
> zeoslib TZQuery.Open, данные не обновляются 
:(
    Опции темы
sunnmas
Дата 24.7.2009, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.4.2009

Репутация: нет
Всего: нет



Вставляю данные в таблицу. Хочу узнать индекс, с которым идет эта запись. Пишу код:

Код

ZQuery.SQL.Text:=
        'INSERT INTO `CleanCategory` (`category`) VALUES ("'+edFinalCategory.Text+'")';
ZQuery.Open;

ZQuery.SQL.Text:=
      'SELECT `index` FROM CleanCategory WHERE `category`="'+
      edFinalCategory.Text+'"';
ZQuery.Open;

ind:=ZQuery.FieldByName('index').AsInteger;


Ошибка: Can not open a resultset
Причем, если перезапустить программу, то индекс определяется. В чем может быть проблема?
PM MAIL   Вверх
RedCliphAloe
Дата 24.7.2009, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 13.5.2009

Репутация: нет
Всего: 3



Цитата(sunnmas @  24.7.2009,  11:59 Найти цитируемый пост)
ZQuery.SQL.Text:=        'INSERT INTO `CleanCategory` (`category`) VALUES ("'+edFinalCategory.Text+'")';ZQuery.Open;

попробуй 
Код

ZQuery.ExecSQL

а у ZQuery какой класс родительский?


PM MAIL   Вверх
sunnmas
Дата 24.7.2009, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.4.2009

Репутация: нет
Всего: нет



ZQuery: Cannot perform this operation on a closed dataset
PM MAIL   Вверх
Romikgy
Дата 24.7.2009, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



что за бд?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
sunnmas
Дата 24.7.2009, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.4.2009

Репутация: нет
Всего: нет



инициализация всей приблуды:

  ZQuery:=TZQuery.Create(nil);
  Connection:=TZConnection.Create(nil);

  Connection.Protocol:='mysql';
  Connection.HostName:='127.0.0.1';
  Connection.User:='root';
  Connection.Database:='der';
  Connection.Connect;
  ZQuery.Connection:=Connection;

Добавлено через 9 минут и 57 секунд
база mySQL
PM MAIL   Вверх
Romikgy
Дата 24.7.2009, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



Код

select last_insert_id()



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
sunnmas
Дата 24.7.2009, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.4.2009

Репутация: нет
Всего: нет



Чувствовал, что должно быть что-то подобное.

А как же забрать этот индекс?

раньше я брал его так: ind:=ZQuery.FieldByName('index').AsInteger;

И не догоняю в чем разница между Open и ExecSQL? когда и в каких случаях нужно использовать?
PM MAIL   Вверх
sunnmas
Дата 24.7.2009, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 17.4.2009

Репутация: нет
Всего: нет



догадался)):

Код

ind:=ZQuery.FieldByName('last_insert_id()').AsInteger;

PM MAIL   Вверх
RedCliphAloe
Дата 24.7.2009, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 13.5.2009

Репутация: нет
Всего: 3



Цитата(sunnmas @  24.7.2009,  13:23 Найти цитируемый пост)
И не догоняю в чем разница между Open и ExecSQL?

Open - активирует набор данных...
ExecSQL - выполянет инструкцию DML...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.