Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 11.07.2017, 20:10   #11
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,005
Репутация: 6348
По умолчанию

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

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

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

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

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

Цитата:
По сути 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 в 13:04.
Аватар на форуме   Ответить с цитированием
Старый 12.07.2017, 19:11   #16
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 168
Репутация: 39
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Кстати сиквел начиная с какой-то версии понимает
Можно даже и так
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 в 19:32.
Heneken87 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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 02:40
mssql + с# dampirik SQL, базы данных 1 14.12.2009 20:03


00:36.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru