Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вопрос нуба по запросу
|
|||
|---|---|---|---|
|
#18+
В каше' нуб, поэтому сильно не пинайте. Вопрос: есть возможность через SQL-запрос сделать выборку из таблицы БД по полю где хранится коллекция (или ссылки на коллекцию я если честно не знаю, как правильно сказать) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2012, 10:50 |
|
||
|
Вопрос нуба по запросу
|
|||
|---|---|---|---|
|
#18+
Забыл в конце предложения знак вопроса поставить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2012, 15:38 |
|
||
|
Вопрос нуба по запросу
|
|||
|---|---|---|---|
|
#18+
fonarshik , Было . Коллекции есть двух видов: списки, массивы. Если у Вас массив, то используйте виртуальную таблицу: Основы Проецирования Объект-SQL Если же список, то SQL-предикат FOR SOME %ELEMENT Кроме того для ускорения запросов Вы можете коллекции проиндексировать: Индексация Коллекций ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2012, 18:02 |
|
||
|
Вопрос нуба по запросу
|
|||
|---|---|---|---|
|
#18+
servitКроме того для ускорения запросов Вы можете коллекции проиндексировать: Индексация Коллекций А при выборке через SQL как эти индексы могут быть использованы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2012, 19:19 |
|
||
|
Вопрос нуба по запросу
|
|||
|---|---|---|---|
|
#18+
ну я, было дело: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Использование, например: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2012, 21:36 |
|
||
|
Вопрос нуба по запросу
|
|||
|---|---|---|---|
|
#18+
doublefintИспользование, например: Код: sql 1. Дык тут чтобы встать на ID оно же все ID должно перебрать. Вот если бы эта рукопашная SqlProc вернула сам ID, тогда еще ниче так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 00:29 |
|
||
|
Вопрос нуба по запросу
|
|||
|---|---|---|---|
|
#18+
servit fonarshik , Было . Коллекции есть двух видов: списки, массивы. Если у Вас массив, то используйте виртуальную таблицу: Основы Проецирования Объект-SQL Если же список, то SQL-предикат FOR SOME %ELEMENT Кроме того для ускорения запросов Вы можете коллекции проиндексировать: Индексация Коллекций У меня коллекция список объектов(которые занесены в другую таблицу), сейчас пример приведу: Есть 2 класса Salers и Prodacts /// Торгаши Class OModel.Salers Extends %Persistent { /// ФИО Property Name As %String;; /// Рег.данные Property Reg As %String; /// Адрес Property Address As Address; /// Товары Property Product As list Of Product; } /// Товары Class OModel.Prodacts Extends %Persistent { /// Артикул Property Artikul As %Integer; /// Описание товара Property Opisanie As %String; } Мне нужно выбрать продавцов у которых имеется заданный товар(например по артикулу). Это возможно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 08:38 |
|
||
|
Вопрос нуба по запросу
|
|||
|---|---|---|---|
|
#18+
ну яservitКроме того для ускорения запросов Вы можете коллекции проиндексировать: Индексация Коллекций А при выборке через SQL как эти индексы могут быть использованы? SELECT Name,FavoriteColors FROM Sample.Person WHERE FOR SOME %ELEMENT(FavoriteColors) (%VALUE='Red') План запроса без индекса: Код: plaintext 1. 2. 3. 4. 5. План запроса с индексом Index fcIDX1 On FavoriteColors(ELEMENTS); : Код: plaintext 1. 2. 3. 4. 5. 6. Разница в количестве глобальных ссылок (соответственно возрастание скорости выполнения) будет особо ощутима на б о льшем количестве данных. По поводу примера doublefint . Хоть это и не коллекция в чистом виде, тем не менее оптимизатор может ускорить запрос и для таких данных. Например:Class test.C Extends %Persistent { Index f1 On f1(ELEMENTS) [ Type = bitmap ]; Property f1 As %String; ClassMethod f1BuildValueArray( serialized As %Binary, array As %Binary) As %Status { s list=$LFS(serialized,","),ptr=0,item="" while $LISTNEXT(list,ptr,item){ s:item'="" array(ptr)=item } Q $$$OK } ClassMethod Fill() { d ..%KillExtent() s ^test.CD(1)=$lb("","") s ^test.CD(2)=$lb("","1") s ^test.CD(3)=$lb("","2,1") s ^test.CD(4)=$lb("","2,2") s ^test.CD(5)=$lb("","1,2,3") s ^test.CD=5 do ..%BuildIndices(,1,1) do $system.SQL.TuneTable("test.C",1,1) } } select * from test.C where for some %element(f1) (%value in (1,3)) Можно то же сделать, работая с f1 как обычной строкой, но это будет менее эффективно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 11:14 |
|
||
|
Вопрос нуба по запросу
|
|||
|---|---|---|---|
|
#18+
fonarshikМне нужно выбрать продавцов у которых имеется заданный товар(например по артикулу). Это возможно сделать? Можно:Class SqlRu.Prodacts Extends %Persistent { /// Артикул Property Artikul As %Integer; /// Описание товара Property Opisanie As %String; } Class SqlRu.Salers Extends %Persistent { /// ФИО Property Name As %String; /// Рег.данные Property Reg As %String; /// Товары Property Product As list Of Prodacts; ClassMethod Fill() { ;d ##class(SqlRu.Salers).Fill() do ##class(SqlRu.Salers).%KillExtent() do ##class(SqlRu.Prodacts).%KillExtent() &sql(insert into SqlRu.Prodacts(Artikul,Opisanie) select 2,'Opisanie2' union select 4,'Opisanie4' union select 1,'Opisanie1') &sql(insert into SqlRu.Salers(Name,Reg,Product) select 'Name1','Reg1',$listbuild($listbuild(trim('1')),$listbuild(trim('3'))) union select 'Name2','Reg2',$listbuild($listbuild(trim('3')),$listbuild(trim('2'))) union select 'Name3','Reg3',$listbuild($listbuild(trim('1')))) do ##class(SqlRu.Prodacts).%BuildIndices(,1,1) do ##class(SqlRu.Salers).%BuildIndices(,1,1) do $system.SQL.TuneTable("SqlRu.Prodacts",1,1) do $system.SQL.TuneTable("SqlRu.Salers",1,1) } } select * from SqlRu.Salers where for some %element(product) (+$listget(%value) in (select %ID from SqlRu.Prodacts where Artikul in (2,4))) PS: в Вашем случае вместо коллекции объектов лучше использовать отношение типа один-ко-многим или родитель-потомки . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 11:20 |
|
||
|
Вопрос нуба по запросу
|
|||
|---|---|---|---|
|
#18+
круто, хорошее дополнение к доке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 11:37 |
|
||
|
Вопрос нуба по запросу
|
|||
|---|---|---|---|
|
#18+
doublefint Код: sql 1. Хитронный индекс? +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 11:58 |
|
||
|
Вопрос нуба по запросу
|
|||
|---|---|---|---|
|
#18+
servit, Спасибо, буду пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2012, 12:17 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=37762654&tid=1557483]: |
0ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
106ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 408ms |

| 0 / 0 |
