Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2017, 19:10   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Если XML сложной вложенной структуры и я верно понял идею, то нужно будет поизвращаться так же на славу только в самой БД
Со сложной структурой навряд ли одним клиентдатасетом. Нужно сильно понагибать их несколько ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.07.2017, 19:20   #12
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 219
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Со сложной структурой навряд ли одним клиентдатасетом. Нужно сильно понагибать их несколько ))
Спасибо большое. Подход будет заключаться в создании отдельных таблиц (согласно структуре XML) в самой БД. Сама вставка будет работать через метод ApplyUpdate динамически созданного датасета Dataset1 являющегося копией таблицы из БД. Который в свою очередь будет собираться из DataSetXML созданного через XML маппер. Осталось купить чего нить покрепче и надеятся что это будет работать дейстивтельно быстрее чем построчная вставка =)
Пишу много и развернуто

Последний раз редактировалось Heneken87; 11.07.2017 в 19:22.
Heneken87 вне форума Ответить с цитированием
Старый 11.07.2017, 19:28   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

На счет быстрей на сервере навряд-ли. Все равно датасетпровайдер сгенерит последовательность инсертов и отправит их пакетом sql-серверу. Точно так же, как бы программно кучу append-ов клиентдатасету и тот же ApplyUpdates. А на клиенте скорее всего быстрей. Получится - отпишись ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.07.2017, 19:30   #14
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 219
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
На счет быстрей на сервере навряд-ли. Все равно датасетпровайдер сгенерит последовательность инсертов и отправит их пакетом sql-серверу. Точно так же, как бы программно кучу append-ов клиентдатасету и тот же ApplyUpdates. А на клиенте скорее всего быстрей. Получится - отпишись ))
Окей
Пишу много и развернуто
Heneken87 вне форума Ответить с цитированием
Старый 12.07.2017, 11:46   #15
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
По сути insert into TableA (N1,N2,N3) values (1,2,3) это вставка одномерного массива , неужели нет возможности вставки матрицы
Кстати сиквел начиная с какой-то версии понимает
Код:
insert into TableA (N1,N2,N3) values (1,2,3),(1,4,5),(3,3,5)
может к этому и вернешься. Или так
Код:
insert into TableA (N1,N2,N3) 
  SELECT 1,2,3
  UNION ALL
  SELECT 1,4,5
  UNION ALL
  SELECT 3,3,5
и ваще xml можно обработать и записать в таблицы только средствами sql без всяких делфи и клиентдатасетов
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 12.07.2017 в 12:04.
Аватар вне форума Ответить с цитированием
Старый 12.07.2017, 18:11   #16
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 219
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Кстати сиквел начиная с какой-то версии понимает
Можно даже и так
declare @BufTable table (n1 nvarchar(10) ,n2 int ,n3 Money)
insert into TableA (N1,N2,N3)
BufTable.n1,BufTable.n2,BufTable.n3

Зактык в том, как передать ему эту самую @BufTable средствами Delphi

Цитата:
и ваще xml можно обработать и записать в таблицы только средствами sql без всяких делфи и клиентдатасетов
Да. Но насколько я понял это можно сделать только на серваке. Файлы надо будет качать или копировать на сервер с клиентсой машины.
Мне кажется просто в SQL запросе передать соответствующе обрамленный XML текст в 90 МБ не прокатит. Да помимо самой XML там схема нужна будет.

P/S/ Я пока не пробовал вчерашнюю идею, другие задачи были
Пишу много и развернуто

Последний раз редактировалось Heneken87; 12.07.2017 в 18:32.
Heneken87 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
insert into MsSql stalsoft Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 3 07.11.2012 15:38
MSSQL Xe-Xe SQL, базы данных 4 31.10.2011 15:39
Запросы в MSSQL Hookis1 Фриланс 9 17.04.2010 18:08
C# + MSSQL dampirik Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 3 17.12.2009 01:40
mssql + с# dampirik SQL, базы данных 1 14.12.2009 19:03