powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите с удалением строк
9 сообщений из 9, страница 1 из 1
Помогите с удалением строк
    #32313586
DJStealth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
делаю коннект к xls файлу и надо оттуда удалить первых 10 строк(это шапка она мне не нужна):

m_strConnect. = "Driver={Microsoft Excel Driver (*.xls)};DBQ="+lpszLocalPathName+"; DriverID=790;ReadOnly=-1;";
m_ptrConnect = NULL;
m_ptrConnect.CreateInstance(__uuidof(Connection));
m_pRS = NULL;
m_pRS.CreateInstance( __uuidof(Recordset));
m_pRS->CursorLocation = adUseClient;
m_ptrConnect->Open(_bstr_t( m_strConnect.GetBuffer(0)),bstr_t(), bstr_t(),-1);
m_pRS->Open((_bstr_t)sSqlExport, _variant_t((IDispatch*)m_ptrConnect, true), adOpenStatic ,adLockBatchOptimistic ,adCmdTable);

for (int countRow=0;countRow< countRowCurrent;countRow++,m_pRS->MoveFirst())
{
pMainFrame->m_pRSImport->Delete(adAffectCurrent);
pMainFrame->m_pRSImport->Update();
}
Говорит что удялет, переоткрываю, но ничего не происходит, как быть и где копать
...
Рейтинг: 0 / 0
Помогите с удалением строк
    #32314131
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adLockBatchOptimistic =>
pMainFrame->m_pRSImport->UpdateBatch();

а лучше так:

Код: plaintext
1.
2.
3.
4.
for (int countRow= 0 ;countRow< countRowCurrent;countRow++,m_pRS->MoveFirst()) 
  pMainFrame->m_pRSImport->Delete(adAffectCurrent); 

pMainFrame->m_pRSImport->UpdateBatch(); // лишь однажды
...
Рейтинг: 0 / 0
Помогите с удалением строк
    #32314969
DJStealth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ситуация в том что это работает для всех БД, кроме ExcellЯ.
Удалить могу везде, но вот ExcellЯ, почему-то не дает строки удалять.
Как мне из ExcellЯ строки удалять????? Подскажите
...
Рейтинг: 0 / 0
Помогите с удалением строк
    #32315002
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, попробуй DAO.
если не поможет, значит провайдер действительно не дает строки удалять.
...
Рейтинг: 0 / 0
Помогите с удалением строк
    #32315179
DJStealth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да но почему писать я могу,

вот пример:
|>
а удолять нет????
...
Рейтинг: 0 / 0
Помогите с удалением строк
    #32316029
_Konst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, с удалением данных из Excel есть какая-то заковыка.
На уровне SQL для него не работает инструкция DELETE [FROM] table_name.
Только DROP. Соответственно нужно действовать через промежуточную таблицу или буфер.
...
Рейтинг: 0 / 0
Помогите с удалением строк
    #32316457
DJStealth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял, т.е. мне придется вместо того чтобы удалить первых десять строк, втягивать ~3000 строк, это убедительно
...
Рейтинг: 0 / 0
Помогите с удалением строк
    #32316896
DJStealth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал так:
if(m_pRSImport->Supports(adDelete))
m_pRSImport->Delete(adAffectCurrent);[/color]//Сода попадает т.е. удаление поддерживается
если пишу m_pRSImport->Update(); нет не ошибки ни результата удаления(т.е. все строки остались)
если
pMainFrame->m_pRSImport->UpdateBatch(/*слюбым параметром*/);вылетает ошибка код:80040e21
...
Рейтинг: 0 / 0
Помогите с удалением строк
    #32316980
_Konst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне не совсем понятно из кода какой провайдер используется,
я попробовал прицепиться к файлу Excel с помощью ODBC provider. Так вот запрос на удаление строки выдал следующую ошибку:

[Microsoft][ODBC Excel Driver] Deleting data in a linked table is not supported by this ISAM.
State: S1000, Native: -5410, Source: Microsoft OLE DB Provider for ODBC Drivers

Вообще же при экспорте данных в Excel я использую ODBC и там команда на удаление рядов ошибок не выдает, но результат у нее нулевой, т.е. ничего не удаляется. По-видимому, всему виной слишком широкие возможности Excel по форматированию, так что в общем случае невозможно обеспечить сохранение форматирования при удалении данных.
Почему ты не хочешь написать запрос типа select into в новую таблицу того, что надо, удалить прежнюю, а новую переименовать?

Я при экспорте в Excel использую подход схожий с "документ - представление". На одном листе (лист - представление) содержится форматирование и ссылки на данные из другого листа, который содержит просто сырые данные. Соответственно со вторым листом я могу делать все, что угодно, а форматирование на первом сохраняется.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите с удалением строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]