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

Ваш аккаунт

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

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

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

не удалить запись...

8.8K
23 мая 2005 года
IreneSPb
16 / / 14.05.2005
Три таблицы dbf3.Индексы по полю P0_____ у всех.
Использую ADOConnection->ADOQuery->DATASource ->DBNavigator.
Когда в Query пишу SQL=
Select *from GRUNT1.dbf
-все нормально.
Когда SQL=
Select GRUNT1.*,GRUNT2.*,GRUNT3.*
From GRUNT1,GRUNT2,GRUNT3
Where GRUNT1.P0______ = GRUNT2.P0______
AND GRUNT1.P0______ = GRUNT3.P0______

- по нажатию на кнопку "-"(удалить) DBнавигатора выдается ошибка: "недостаточно сведений ключевого поля для обновления." Что делать???
259
23 мая 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by IreneSPb
Три таблицы dbf3.Индексы по полю P0_____ у всех.
Использую ADOConnection->ADOQuery->DATASource ->DBNavigator.
Когда в Query пишу SQL=
Select *from GRUNT1.dbf
-все нормально.
Когда SQL=
Select GRUNT1.*,GRUNT2.*,GRUNT3.*
From GRUNT1,GRUNT2,GRUNT3
Where GRUNT1.P0______ = GRUNT2.P0______
AND GRUNT1.P0______ = GRUNT3.P0______

- по нажатию на кнопку "-"(удалить) DBнавигатора выдается ошибка: "недостаточно сведений ключевого поля для обновления." Что делать???


Можно просто плюнуть. ADO с dBase работает плохо. Она просто на самом деле не понимает формат индексных файлов, но это не мешает работать корректно.

8.8K
23 мая 2005 года
IreneSPb
16 / / 14.05.2005
Цитата:
Originally posted by AlexandrVSmirno
Можно просто плюнуть. ADO с dBase работает плохо. Она просто на самом деле не понимает формат индексных файлов, но это не мешает работать корректно.



Так как работать корректно-то? И как можно сжать таблицу после удаления?

259
23 мая 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by IreneSPb
Так как работать корректно-то? И как можно сжать таблицу после удаления?


1. Уберите индексы вообще
2. На сколько я знаю аналога команды pack нет

8.8K
23 мая 2005 года
IreneSPb
16 / / 14.05.2005
Цитата:
Originally posted by AlexandrVSmirno
1. Уберите индексы вообще
2. На сколько я знаю аналога команды pack нет


Тогда корректно не поработаешь - после переоткрытия помеченные на удаление записи отсвечиваются в DBEdit-ах....

259
23 мая 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by IreneSPb
Тогда корректно не поработаешь - после переоткрытия помеченные на удаление записи отсвечиваются в DBEdit-ах....


Могу и ошибатьс, но помоему так:

 
Код:
Select GRUNT1.*,GRUNT2.*,GRUNT3.*
From GRUNT1,GRUNT2,GRUNT3
Where GRUNT1.P0______ = GRUNT2.P0______
AND GRUNT1.P0______ = GRUNT3.P0______
AND GRUNT1.deleted <> "*"
AND GRUNT2.deleted <> "*"
AND GRUNT3.deleted <> "*"
8.8K
23 мая 2005 года
IreneSPb
16 / / 14.05.2005
Цитата:
Originally posted by AlexandrVSmirno
Могу и ошибатьс, но помоему так:
 
Код:
Select GRUNT1.*,GRUNT2.*,GRUNT3.*
From GRUNT1,GRUNT2,GRUNT3
Where GRUNT1.P0______ = GRUNT2.P0______
AND GRUNT1.P0______ = GRUNT3.P0______
AND GRUNT1.deleted <> "*"
AND GRUNT2.deleted <> "*"
AND GRUNT3.deleted <> "*"



Не... выдает при попытке активизации - Слишком мало параметров,требуется 1

488
23 мая 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by IreneSPb
Тогда корректно не поработаешь - после переоткрытия помеченные на удаление записи отсвечиваются в DBEdit-ах....

Можно настроить в ODBC администраторе->User DSN->Options ->Show Deleted Rows (checkbox отключить)

Кроме этого можно определить обработчик OnException события TApplication, что то типа и упрощенно

Код:
void __fastcall TForm1::AppException(TObject *Sender, Exception *E)
{
  if(Exception->Message=="недостаточно сведений ключевого поля для обновления")  // возможно по-английски
  {
    Query->SQL = "DELETE FROM GRUND1 WHERE PO=xxx";
    Query->ExecSQL;
    Query->SQL = "DELETE FROM GRUND2 WHERE PO=xxx";
    Query->ExecSQL;
    Query->SQL = "DELETE FROM GRUND3 WHERE PO=xxx";
    Query->ExecSQL;
  }
}

В OnCreate событии формы, если она создается динамичемки написать
Application->OnException = AppException;

В OnClose событии формы написать
Application->OnException = NULL;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог