Проблема при копировании данных из SQL в mdb
у меня есть проблема с mdb и sql я хочу вставить данные из sql в mdb что я сделал :
1. созданная таблица в mdb с sql таблицей nd столбцов , типа и т. д
2.вставка каждый раз, как циклический набор записей sql и вставка в mdb.
проблема в том, что он занимает много времени, чтобы вставить из sql в mdb любое предложение или лучшее решение, Пожалуйста, дайте мне знать.
Что я уже пробовал:
for ( CXInt nFld = 0; nFld < (CXInt)pmatrecordset->NumRows(); nFld++ ) { strInsertQuery = _T(""); strColNames = _T(""), strColValues = _T(""); strTemp = _T(""); strInsertQuery = _T("INSERT INTO "); strInsertQuery += strTName; strColNames = _T("( "); strColNames = _T("( "); strColValues = _T(" VALUES ("); for ( CXInt nColName = 0; nColName < (CXInt)pMat->NumCols(); nColName++ ) { strColNames += pMat->GetColumnName(nColName); strColNames += _T(','); } strColNames = strColNames.TrimRight(','); strColNames += _T(" ) "); for ( CXInt nCol = 0; nCol < (CXInt)pMat->NumCols(); nCol++ ) { strTemp.Format(_T("\"%s\""), str); strColValues += strTemp; strColValues += _T(','); } strColValues = strColValues.TrimRight(','); strColValues += _T(" ) "); strInsertQuery += strColNames; strInsertQuery += strColValues; //inserting to mfdb }
CHill60
Во-первых, вы не должны создавать запрос путем объединения строк.
Если вы знаете формат таблицы, просто используйте параметризованный запрос.
Однако, похоже, что это должно быть общим - в этом случае используйте StringBuilder вместо "добавления" в конец строк - строки неизменяемы (не могут быть изменены), поэтому вы фактически создаете новую строку каждый раз, когда используете +=
Member 13798855
probelm-это iam, вставляющий каждый раз ...это вызывает проблему
CHill60
Смотрите комментарий Ричарда Деминга. Или вы можете подключиться к базе данных SQL в базе данных Access и связать ее с таблицами. Если вам абсолютно необходимо иметь копию таблицы на mdb, то напишите простой запрос доступа по строкам
Select * into Accesstable from sqltable
CHill60
Еще одна мысль - попробуйте обновить его до более современной версии Access, которая использует суффикс .accdb.
Richard Deeming
Вы можете использовать либо мастер импорта в Access, либо мастер экспорта данных из SQL:
Экспорт базы данных Sql Server 2008 в базу данных MS Access - переполнение стека[^]