Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с SQL запросами в Builder. Где ошибка?

9.5K
05 августа 2008 года
ROLpogo
80 / / 22.08.2006
Среда: Builder 5.0
База: MS SQL Server 2005, к которой в ODBC прописан алиас.

Задача: продемонстрировать программное добавление и удаление записей из базы с помощью SQL запросов.

В базе 11 таблиц, некоторые имеют триггер на каскадное удаление связанных таблиц.
(Если всё делать через прямые запросы в SQL Server Studio, то всё работает без ошибок)
----------------------------------------------------------------------------
Добавил на форму 11 связок TTable<-TDataSource<-TDBGrid и одну связку TQuery<-TUpdateSQL. Ляпанул 2 кнопки: "Добавить данные", "Очистить данные".

Добавление записей происходит без проблем. Вот таким макаром:

 
Код:
UpdateSQL->InsertSQL->Clear();
  UpdateSQL->InsertSQL->Add("insert into Book (Type, Name, Autor) values('Детектив', 'Колобок', 'Народ')");
  UpdateSQL->Apply(ukInsert);
  BookT->Refresh();
  // И так 11 блоков...




А вот удаление происходит не стабильно. Причём программа вываливается на удалении не из определённой таблицы а как получится. Делаю вот так:

 
Код:
if ( BookT->RecordCount )
  {
    UpdateSQL->DeleteSQL->Clear();
    UpdateSQL->DeleteSQL->Add("delete from Book");
    UpdateSQL->Apply(ukDelete);
  }
  // И так 11 блоков...



Может я не правильно пользую TUpdateSQL?
Внимание, вопрос: Как правильно удалять записи в базе с помощью SQL запроса из Builder'а? :confused:
16K
05 августа 2008 года
iRain
72 / / 12.03.2008
Формат комнды Delete внимательно изучать надо!

delete from список_таблиц where условие

кароч у тя условия не хватает!
11
06 августа 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: iRain
Формат комнды Delete внимательно изучать надо!

delete from список_таблиц where условие

кароч у тя условия не хватает!




если условия не стоит, то удалит все записи

9.5K
06 августа 2008 года
ROLpogo
80 / / 22.08.2006
Цитата: iRain
Формат комнды Delete внимательно изучать надо!

delete from список_таблиц where условие

кароч у тя условия не хватает!



Мне нужно удалить все записи в таблице

16K
06 августа 2008 года
iRain
72 / / 12.03.2008
Какую ошибкк выбивает?
9.5K
06 августа 2008 года
ROLpogo
80 / / 22.08.2006
Что-то связанное с TUpdateSQL. Дословно смогу сказать только вечером.

Принцип такой:
Добавляю в каждую из 11 таблиц по 1 записи. Потом пытаюсь удалить записи по порядку из каждой таблицы. Бывает, что ошибка вылетает на удалении из 2-й таблицы, а бывает, например, что из 4-й или 7-й. Как будто память мусорится.
2.1K
06 августа 2008 года
mainigor
151 / / 21.10.2005
Цитата: ROLpogo
Что-то связанное с TUpdateSQL. Дословно смогу сказать только вечером.

Принцип такой:
Добавляю в каждую из 11 таблиц по 1 записи. Потом пытаюсь удалить записи по порядку из каждой таблицы. Бывает, что ошибка вылетает на удалении из 2-й таблицы, а бывает, например, что из 4-й или 7-й. Как будто память мусорится.



выведи удаление в функцию
можешь попробовать TQuery

она тоже удаляет :)

function deleteAll()
{
UpdateSQL->Close();
UpdateSQL->SQL->Clear();
UpdateSQL->SQL->Add("delete from Table");
UpdateSQL->ExecSQL();
}

а что все таблицы видно в интерфейсе ?
делай
BookT->Refresh();
только для тех что видно - быстрее будет.

9.5K
06 августа 2008 года
ROLpogo
80 / / 22.08.2006
Проблема решена заменой TUpdateSQL на TQuery.
Всем спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог