Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Удаление записи из БД  (Прочитано 7467 раз)
0 Пользователей и 1 Гость смотрят эту тему.
SSW
Гость
« : 23-05-2004 10:05 » 

MFC VC++6.0
Базу создал с помощью FoxPro. (DBF) Потом работаю через ODBC.
Открываю примерно так:
Код:
	try
{
cdbBluda.OpenEx("DSN=kartki");  // закрытие по дестрой
if (cdbBluda.IsOpen()) VivListDialog();// если да то...
else
{ AfxMessageBox("Not Open");
  return FALSE;
}
}
catch(...)
{
AfxMessageBox("Error Open DNS");

Удаляю записи примерно так:
Код:
	MyCrec cr(NULL);
cr.m_pDatabase=&cdbBluda;
try
{
cr.m_nFields=63;
cr.Open(CRecordset::dynaset, "SELECT *  FROM kartki;");
cr.Move(0);
while (!cr.IsEOF())
{
if (cr.m_NAME==findStr)  // соответствует ли ответ нужному из выбраного списка
{
cr.Delete();
}
cr.MoveNext();
}
cr.Close();
}
catch(CDBException cdb)
{
AfxMessageBox(cdb.m_strStateNativeOrigin);
}
VivList();
UpdateData( FALSE );
После этого в БД удаленные поля становятся помеченными.
Как сделать так, чтоб их вообще удалить?
« Последнее редактирование: 25-11-2007 21:57 от Алексей1153++ » Записан
Daniloff
Помогающий

ru
Offline Offline

« Ответ #1 : 28-05-2004 17:39 » 

для dbf - никак... У фокса есть команда pack, которая копирует непомеченные записи в новый файл, а старый удаляет. Делай так же...
Записан
Anonymous
Гость
« Ответ #2 : 04-06-2004 16:02 » 

А если попробывать через ExequteSql  и запрос на удаление
Записан
Anchorite
Гость
« Ответ #3 : 04-06-2004 19:17 » 

Насколько я помню, в доке к ODBC-драйверу FoxPro есть список то-ли функций, то-ли команд которые он может переварить. Там точно есть PACK. Но как его вызвать к сожалению не знаю Жаль
Записан
SSW
Гость
« Ответ #4 : 05-06-2004 10:33 » new

PACK - это такая штука которая и удаляет помеченные записи в DBF. Но такая штука есть в FoxPro.
Как это можно сделать на VC++ 6.0?
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines