|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.07.2016, 23:06 | #1 |
Форумчанин
Регистрация: 09.09.2008
Сообщений: 418
|
Record или class
Здравствуйте. Помогите, пожалуйста, разобраться с class или record.
Есть n-количество xml файлов такого содержания(Привожу описание по-русски, чтобы было понятнее) Код:
Код:
Я привел только 3 record и маленькие кусочки XML, на самом деле у меня их(record) 14 с несчетным количеством реквизитов По мере чтения XML-файла записываю данные в record Например Код:
Как мне потом перебрать все record для сохранения их в БД или перебор у меня не получиться, если так то можно ли воспользоваться class? |
04.07.2016, 23:46 | #2 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
а зачем вам прослойки? сразу в базу и пишите
если надо то класс |
05.07.2016, 07:53 | #3 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Ну если с единичным документом, я бы работал прямо в XML (то есть класс), а так в БД.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
05.07.2016, 09:30 | #4 | |||
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
tarakan1983
Вы не правильно вопрос ставите. Надо писать что вы хотите сделать, что требуется. А не то как вы делаете. Во-вторых, главную часть вопроса надо писать в начале текста. Цитата:
http://www.delphibasics.ru/New.php Как правильно? 1) Где выделяем память там и освобождаем. Идеально если это в одной функции. Или хотя бы в одном классе. 2) new-Dispose более безопасны чем GetMem и FreeMem 3) После выделения не забываем что надо очистить память. FillChar(p^,SizeOf(p^),0); В delphibasics, это забыли сделать. Цитата:
Цитата:
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|||
05.07.2016, 09:33 | #5 |
Форумчанин
Регистрация: 09.09.2008
Сообщений: 418
|
XML большой, боюсь запутаться. Я сначала сохраняю Отправвителя, Получателя, Транспортную компанию, Водитель, Экспидитор, Автомобиль и т.п. получаю их ID, при этом в отдельных функциях проверяю на существование их в БД по отдельным реквизитам и при существовании обновляю текущими данными, сохраняю документ со всеми ID, у документа есть n-количество позиций товара со своими характеристиками(Производитель, импортер и т.п.) их тоже надо все сохранить и проверить на дубль в БД и потом только ID занести. Поэтому для наглядности и выбрал record, только не знаю как его правильно обнулять перед каждым новым XML и как его перебирать.
А как class правильно обнулять перед каждым новым XML и как его перебирать? |
05.07.2016, 10:18 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если боишься запутаться, то проще динамические массивы записей:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 05.07.2016 в 10:22. |
05.07.2016, 11:16 | #7 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
21 век,а вы все записями...
Можно ведь ClientDataset пользовать: В XML Mapping Toolе замутить нужный трансформ
Не стесняемся, плюсуем!
|
05.07.2016, 11:36 | #8 | |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
Цитата:
а если база сама умеет xml, то и делфи ненужная прослойка |
|
07.07.2016, 12:04 | #9 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
попробуйте использовать XML Binding.
http://deldev.blogspot.ru/2008/05/xm...ng-delphi.html Генерирует на основе xml распарсенный класс. Удобная вещь. пример:XMLBinding_Example.zip
"ковыряю изнутри" (с)
Последний раз редактировалось 3D Hunter; 07.07.2016 в 12:06. |
07.07.2016, 12:12 | #10 | |
Форумчанин
Регистрация: 09.09.2008
Сообщений: 418
|
Цитата:
Вот примеры файлов, можете сами попробовать? P.S. Может у меня что-то кривое(руки, мозги и т.п.) |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Class или Unit, что выбрать? | Pcrepair | Общие вопросы Delphi | 3 | 01.02.2013 08:05 |
delphi XE2 Передать указатель на тип record в EnumWindows. Вылет в IntOverFlow или AV | Человек_Борща | Общие вопросы Delphi | 8 | 12.02.2012 21:57 |
Ошибка " Record, object or class type required " (Запись, объектный или классический тип требовались) | kta87 | Помощь студентам | 2 | 28.02.2010 10:04 |
Record, object or class type required | @mazonk@ | Помощь студентам | 0 | 07.06.2009 13:03 |