1 | |
Результат запроса - каков его тип и что с ним можно делать?16.09.2017, 21:06. Показов 931. Ответов 15
Метки нет (Все метки)
Объясните дилетанту. Никогда не сталкивался с SQL, и вот снова пришлось (С). В интернете 100500 терабайт контента про то, как писать различные запросы. А что сама база возвращает в качестве результата их выполнения? Какой тип у этого безобразия? Число - если мы запросим агрегатную функцию по какой-нибудь числовой колонке какой-нибудь таблицы? Или некая волшебная одномерная итерируемая сущность, которая умеет в итератор и обращение к своим полям - примитивным типам языка, из которого был выполнен запрос? Или что-то еще?
ЗЫ я человек, измученный
0
|
16.09.2017, 21:06 | |
Ответы с готовыми решениями:
15
Определить модель терминала и что с ним можно делать. Файл svn: как его импортировать и что с ним делать По трем сторонам, если по ним можно построить треугольник, то определить его тип Книга по WordPress. Как писать темы, плагины, виджеты и что еще с ним можно делать |
17.09.2017, 07:22 | 2 | |||||
массив
вот тут ВСЕ описано подходит почти для всех компонентов доступа к БД - ADO, FireDAC, UniDac, MSDac написал запрос, выполнил, обработал, вывел - что из этого не понятно? Добавлено через 3 минуты Блин, а у вас какой язык программирования? Я почему то про делфи подумал, извиняюсь таблицу вы где будете свои запросы выполнять? в 1с?
0
|
17.09.2017, 15:53 [ТС] | 3 |
Спасибо, понятно.
ЗЫ Язык программирования у меня не важно какой. Важно то, что скорее всего придется как-то решать задачу в рамках убогих абстракций одномерно итерируемого объекта. В котором даже такие тривиальные вещи, как перебрать на первом уровне персон а на втором для каждой вывести их детей становится хрен пойми как решаемой задачей. А о многомерных вложенных запросах и думать не приходится, похоже.
0
|
18.09.2017, 16:32 [ТС] | 7 |
Так я и спросил в этой теме. Но по мере погружения в материал возникают все новые вопросы. Например, если результат запроса - одномерная таблица с жестким составом колонок, то как мне красиво перебрать вложенные результаты - например, колонка с именем человека и лефт джойн (по совпадениям id) колонка с именем его детей. Случай тривиальный, но у меня после джойна строк станет столько, сколько всего детей будет в запросе, а родители продублируются на всех этих строках. И как мне перебрать в цикле сначала всех родителей а потом во вложенном всех детей каждого? Или эмулировать это руками - перебирать построчно и смотреть, поменялся ли родитель?
0
|
25 / 24 / 7
Регистрация: 22.08.2017
Сообщений: 130
|
|
20.09.2017, 09:30 | 13 |
0
|
20.09.2017, 13:11 [ТС] | 14 |
Да, причем в типах и абстракциях языка, из которого все это вызывается, как мне говорили, и как я сам убедился. У меня в Clojure например это линейный список мапов, где у каждой мапы перечень полей - названия колонок таблицы результата запроса, а значения - значения этих колонок текущей строки. И все это дело только линейно перебирать. Я просто думал, может есть какое-то волшебство, позволяющее получать этот результат сразу в виде мощного сложного объекта, как привык в 1С. Но похоже, к сожалению, такого нет.
0
|
1652 / 1151 / 173
Регистрация: 23.07.2010
Сообщений: 6,836
|
|
21.09.2017, 14:14 | 15 |
благородный дон слышал что-нибудь про провайдеры данных?
0
|
21.09.2017, 15:50 [ТС] | 16 |
Насколько я могу догадываться, то это некий дополнительный слой абстракции, который через драйвер стучится к базе, выполняет запрос, берет его плоский (или другой, если всякие Монги и Редисы) результат, потом преобразует его к удобному для кручения/верчения виду, и этот вид уже выдает пользователю. Похоже, в 1С он встроен в движок, поэтому там так все хорошо. В Ruby по слухам есть некий ROM, в других языках скорее всего свои либы и фреймворки. Но похоже, что мне придется изобрести свой велосипед.
ЗЫ я тут почитал основы реляционной алгебры над отношениями и понял, что любой запрос - это сложное композиционное выражение реляционной алгебры, которое в качестве входных данных принимает отношения и возвращает всегда тоже отношение, в силу замкнутости всех операций на множестве отношений. Поэтому результат запроса в реляционных базах - это всегда отношение (плоская таблица кортежей). Собственно, это внесло ясность в вопрос. Хотя конечно различные провайдеры данных могут потом его крутить как угодно, полагаю.
0
|
21.09.2017, 15:50 | |
21.09.2017, 15:50 | |
Помогаю со студенческими работами здесь
16
Что такое Microsoft Scripting Editor и что полезного можна с ним делать в файлах ПР 4, что с ним делать?? Kernel_task и что с ним делать? HIDE и что с ним делать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |