Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
8 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 210
1

Импорт в MS Sql Server из CSV

24.03.2024, 12:58. Показов 715. Ответов 18

Author24 — интернет-сервис помощи студентам
всем доброго дня.

столкнулся с проблемой. есть програмулина написана на Delphi, база данных подключена Access, по истечению времени база сильно разширилась, добавилось кучу новых таблиц, ну и соответственно основная таблица сильно разширилась.
Хочу перевести на MS SQL Server.
выгрузил все таблицы в CSV, ну и начал импортировать

вот код к одной из импортированых таблиц, остальные по аналогии

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TufImportBase.btnImpMain_originalClick(Sender: TObject);
begin
   if OpenDialogMain_original.Execute then
    if OpenDialogMain_original.FileName <> null then
    begin
      TextReaderMain_original.FileName := OpenDialogMain_original.FileName;
      try
        ImportFromTextBatchMain_original.Execute;
        DataModule1.FDQueryMain.close;
        DataModule1.FDQueryMain.open;
      except
        On E: Exception do
          ShowMessage(E.Message);
      end;
    end;
 
  Application.MessageBox('Базу успішно завантажено', 'Завантаження',
    MB_OK + MB_ICONQUESTION);
end;
я не думаю что в коде проблема

4 огромных таблиц с кучей данных импортировало без проблем, теперь начал подгружать мелоч, справочники всякие, вспомогательные таблицы, ну короче (много текста)...

выдает такую ошибку при импорте, скорее всего чтото с настройкой самого сервера

Импорт в MS Sql Server из CSV


помогите пожалуста


и еще одно, - после этой ошибки при входе в любое окно программы выдает ту же ошибку
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2024, 12:58
Ответы с готовыми решениями:

Импорт данных из файла CSV в таблицу SQL Server
Добрый день, уважаемые коллеги! Пожалуйста, помогите в решении следующей задачи. Дан файл с...

Массовый импорт CSV в SQL
Всем привет! Задача такая,есть несколько файлов CSV которые надо массово импортировать в таблицу....

Импорт почтовых контактов (csv файл) в exchange server 2010
Добрый день! Подскажите пожалуйста, можно ли сделать импорт контактов на сервере exchange 2010?...

Преобразование CSV в MS SQL Server
Думаю задачка понятна из названия. Ну, а план: -открываем CSV в приложении -Динамически...

18
3587 / 2196 / 693
Регистрация: 29.05.2013
Сообщений: 9,381
24.03.2024, 13:51 2
Это не очень удачное решение. MS SQL имеет собственные средства импорта данных.
0
-105 / 156 / 18
Регистрация: 05.05.2022
Сообщений: 954
24.03.2024, 14:05 3
Ну во-1, там действительно мощный мастер импорта из кучи всего, во-2, для задач связанных с одним проходом по данным есть такая штука, как однонаправленный курсор, в этом случае после вызова Next, запись удаляется из набора, и при ограниченном числе загружаемых в датасет записей, можно протащить любой объем данных.
0
8 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 210
24.03.2024, 17:25  [ТС] 4
какая-то мистика...
как же я долго мучался, и вот каждый раз как только обращусь за помощью на форум, буквально сразу же нахожу ответ сам...
спасибо вам...
я действительно воспользовался мастером импорта даных SQL Server. все быстро и удобно (не судите строго, поскольку никогда не имел дело с этим, да и спросить не у кого (ну кроме интернета конечно, что не всегда быстро и ясно))

Добавлено через 1 час 16 минут
и все же, столкнулся с следующей проблемой... загружаю временные списки для обработки, и опять выдаепт ту же ошибку... не пойму в чем причина
Out of memory

Добавлено через 1 час 57 минут
Пытливый, что же делать в случае когда есть списки которые надо отработать (загрузить в програму, дополнить данными, потом выгрузить обратно)

выдает опять Out of memory
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,160
Записей в блоге: 20
24.03.2024, 20:32 5
а сколько там записей в этих списках ??

Добавлено через 1 час 44 минуты
кстати, если речь вообще о миграции
https://support.microsoft.com/... 22fc42c979
0
8 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 210
25.03.2024, 19:16  [ТС] 6
не много, есть списки на +- 100 строк

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

миграцию я сделал с помощью SSMS, все прошло быстро и удобно.. есть конечно нюансы, с полями типа nvarchar когда нужно отфильтровать по NULL, но с этим я как-то разберусь. ну и поле int в access было просто числовое, а при миграции приходиться перевести в bigint. там штрих код на 10 символов который начинаетьься на 7726000001
0
3587 / 2196 / 693
Регистрация: 29.05.2013
Сообщений: 9,381
25.03.2024, 21:47 7
Практически все ситуации, в которых я получал такую ошибку при работе с базами, возникали в результате испорченного файла БД. Это был испорченный индекс и переиндексация проблему решила. Это было неправильное значение ключевого поля и т.д.
0
8 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 210
29.03.2024, 19:50  [ТС] 8
Пытливый, вы ведете к тому, что таблица базы данных неправильного формата?, тоесть неправильные типи полей?
все поля символьные, и размер символов в ячейке превышает

Импорт в MS Sql Server из CSV


даже удалял таблицу, создавал заново, та же ошибка

все-таки мне кажеться что есть какая-то загогулина в настройках саморго сервера, только вот не могу ничего подобного найти в интернете

P.S.
может проблема с операционной системой? криво встала
0
3587 / 2196 / 693
Регистрация: 29.05.2013
Сообщений: 9,381
29.03.2024, 21:29 9
Первое, что вам надо сделать, это настроить журнал операций и раз у вас количество записей небольшое, то придется вносить в журнал id каждой удачной записи и после получения ошибки, внимательно посмотреть, какое значение в таблице приводит к такому результату и если не получится и после этого найти ошибку, то запустить экспорт с записи вызывающей ошибку в режиме пошаговой отладки и проверить каждое из значений, которое вы экспортируете.
1
-105 / 156 / 18
Регистрация: 05.05.2022
Сообщений: 954
29.03.2024, 21:37 10
А профайлер самого SQL-сервера не поможет? Он как бы все поступающие запросы ловит.
1
Matthias Ronald Gerard
149 / 210 / 25
Регистрация: 11.08.2022
Сообщений: 2,083
30.03.2024, 22:04 11
Цитата Сообщение от MaryoLunga83 Посмотреть сообщение
выдает опять Out of memory
Надо или размер БД увеличить или сделать trunc лога.
0
8 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 210
02.04.2024, 11:38  [ТС] 12
Ludwig Valentin, всм размер базы увеличить, там же стоит авто разширение

Добавлено через 3 минуты
все дело в том, что это база в которую постоянно вносяться изминения, ну и соответственно добавляються записи... так вот при добавлении новых записей все ОК, никаких ошибок, ошибка только при импорте данных в таблицу базы из csv файла
0
Matthias Ronald Gerard
149 / 210 / 25
Регистрация: 11.08.2022
Сообщений: 2,083
02.04.2024, 18:56 13
Возможно, забит под завязку Transaction Log.
Или ошибки при форматировании файла csv.
Попробуйте напрямик, из базы в базу импорт.
Прямо из Access по ODBC.
Или через Linked Server.
0
8 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 210
02.04.2024, 19:19  [ТС] 14
Ludwig Valentin, дело в том, что базу я мигрировал, все ок.

но тут есть списки, (импорт - обработка - експорт) из csv. вот тут и ошибка о нехватке памати
0
Matthias Ronald Gerard
149 / 210 / 25
Регистрация: 11.08.2022
Сообщений: 2,083
02.04.2024, 19:22 15
Цитата Сообщение от MaryoLunga83 Посмотреть сообщение
вот тут и ошибка о нехватке памати
Truncate Transcation Log. Обрезать лог транзакций - пробовал?
Или увеличить базу лога.(MS SQL).
Какой размер файла CSV - в Кб, Мб?
0
8 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 210
02.04.2024, 19:43  [ТС] 16
Ludwig Valentin, 27kb
268 строк
0
Matthias Ronald Gerard
149 / 210 / 25
Регистрация: 11.08.2022
Сообщений: 2,083
02.04.2024, 19:47 17
Цитата Сообщение от MaryoLunga83 Посмотреть сообщение
27kb
268 строк
Такой маленький. Проблем быть не должно.
Не совсем ясно, во что вы вляпались.
А ошибка вылетает во время работы мастера импорта SQL Server?
0
8 / 0 / 0
Регистрация: 11.12.2019
Сообщений: 210
03.04.2024, 08:24  [ТС] 18
Ludwig Valentin, нет, импорт проводиться програмно, Delphi (в самом начале поста есть код)

и это при том, что я не первый раз такое делаю, и есть еще мелкие базы куда все ок грузиться (правда нюанс в том, что на тех прогах SQL Server стоял на локальной машине, и работал автономно, а это подключение к сетевому серверу)
0
3587 / 2196 / 693
Регистрация: 29.05.2013
Сообщений: 9,381
03.04.2024, 13:47 19
MaryoLunga83 вы все еще боретесь с импортом и так и не нашли ошибку, даже после пошаговой отладки, как я предлагал ранее?
0
03.04.2024, 13:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2024, 13:47
Помогаю со студенческими работами здесь

импорт из SQL Server
На SQL Server хранится главные копии таблиц. Приложение (написанное на Delphi) должно инициировать...

Импорт в БД SQL Server CE
Доброго времени суток! Возникла надобность импортировать данные в .sdf файл из Excel, проверяя...

Файл csv в access и sql server
Здравствуйте, У меня есть файл формата csv с разделителями ; С помощью кода на с# качаю в бд ...

Записать в csv данные из MS SQL Server
Hello! Есть необходимость записать результат запроса в csv (или excel) файл. С помощью...

Файл csv в access и sql server
Здравствуйте, У меня есть файл формата csv с разделителями ; С помощью кода на с# качаю в бд...

Импорт из CSV в SQL, где первичным ключом должен быть номер строки исходного файла
Добрейшего всем времени суток! Я новичок в SQL. Столкнулась с проблемой - необходимо сделать...

Импорт из access в SQL Server
Нужна помощь в импорте БД из access 2007 в SQL Server


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru