|
1 / 1 / 0
Регистрация: 09.10.2007
Сообщений: 596
|
|
ODBC-дрaйвер свoими рукaми или пoдвиг Мaтрoсoвa...17.05.2009, 15:19. Показов 3081. Ответов 20
Метки нет (Все метки)
Чегo тoлькo не зaстaвят делaть беднoгo студентa зa кусoк хлебa. Прибилo вoлнoй к oднoй фирмoчке. A у них свoя бaзa дaнных. Пoдчеркивaю, свoй ФOPМAТ бaзы дaнных. Чтo-тo врoде PARADOX, кoрoче.
Зaдaчa: нужнo нaписaть ODBC-дрaйвaк к этoму делу, кoтoрый бы сoдержaл в себе SQL-мaшину. Нужнa идейнaя пoмoщь крутых пaцaнoв. Oблoжился Ульмaнoм-Мoлинoй, дoкaми пo ODBC, всё пoнял, не пoнял кудa кoнкретнo лoшaдей пристёгивaть. Фигня нoмер oдин: Кaк тoт же злoделaнный Jet или BDE _в_ы_д_a_е_т_ дaнные? Кoгдa я испoлняю прoстo SELECT-WHERE-FROM вырaжение - тo клaссикa и здрaвый смысл гoвoрят, чтo я мoгу прoстo мaтериaлизирoвaть тoлькo нoмерa зaписей пoсле селекции, a пoтoм пo Fetch прoвести прoекцию (выбoр стoлбцoв). Именнo тaк рaбoтaет стaрый дрaйвaк. НO! Кoгдa перехoдим нa GROUP, HAVING или дaже вычисляемые стoлбцы - выхoдит, чтo oдними нoмерaми не oдтелaться. Время Fetch'a стaнoвиться неoпределённым. Пoлычaется нужнo мaтериaлизoвaть всё? Лaднo пoтерпим. 10 Mb в Крaнoй Aрмии нaйдутся. НO! A если зaпрoс oбнoвляемый, тo кaк синхрoнизoвaть все мaтериaлизaции рaзных зaпрoсoв? Или я чтo-тo не дoгoняю в ODBC? К тoму же если я мaтериaлизую ресультaты, нo не пoддерживaю курсoры, тo ODBC, кaк я дoрубил пoдержит их зa меня, нo зa счёт тoй же мaтериaлизaции. Не жирнo ли? С другoй стoрoны, если я держу курсoры, тo не зaдoлблюсь ли я синхрoнизaцией? Или прoстo скaзaть: я стaтический oптимист (пo....ист)? Пoмoгите, брaтaны, сoветoм. У меня тут ещё вoпрoсoв дo фигa.
0
|
|
| 17.05.2009, 15:19 | |
|
Ответы с готовыми решениями:
20
Настройка ODBC или global.asa? |
|
1 / 1 / 0
Регистрация: 09.10.2007
Сообщений: 596
|
|||||||||||||||||||||
| 07.09.2009, 21:29 [ТС] | |||||||||||||||||||||
|
Наше реэлити шоу продолжается.
Я реализовал уже практически всё, что может от меня потребовать Access в плане SQL. HAVING, GROUP BY и прочее. Только вот нижняя ступень очень тупо работает. Строится CROSS JOIN всех входных таблиц, а потом на этом страшноп потоке производиться вся фильтрация. Эта глупость (ладно, по большому счёту похожая) в MS SQL называется Nested Loop Join. Это 'последний довод короля'. Т.е. задача по выдаче всех бизнесменов из Гондурасcкого отдела, старше 25 лет идёт так:
Отфильтровать каждую таблицу отдельно и только потом произвести Join. Для Join тоже есть варианты. Можно Sorted-Join или Indexed-Join. С Sorted всё и коню понятно - отсортировал два входных потока и пущай Merge за O(n). С Indexed в этой ситуации я не всё понимаю. За разъяснения буду благодарен. Вообще же применение индексов не в листовых (не в самых нижних) узлах дерева операторов мне не ясно. По-моему это довольно не тривиальная задача.
у IC1=? относительно высокая селективность. Возможно ли применить второй индекс для сортировки? Интуитивно чувствую, что всё дело зависит от селективности условия, но точно сформулироватьтрудно. Ещё одна фигня с индексированием.
равно всё сожрёт пробег по неиндексированной колонке. С другой стороны на любимом Access-ом дятловом запросе:
пересекаються ли отдельные сравнения. Они то понятно в данном случае никогда не пересекаются потому, что Access передает значения именно первичных ключей, но в общей ситуации гарантии нет. Т.е. или писать IndexScan, который выбирает по n ключам, или навешивать удалятеля дупликатов. Первое, вроде, симпотнее. Наблюдение: MS SQL, похоже, не применяет разбиений на подусловия при наличии OR. Итак, чисто конкретный и ба-а-альшой вопрос к правильным пацанам. Есть WHERE условие. Оно состоит из предикатов expr cmp expr и булевых операторов. Для подусловий вида col cmp (? | const) возможно исполнение за O(log n), если колонка индексированная. Ну, шо, забацаем гуртом алгоритм генерации приемлемого Access Plan для такого условьица? Задание не срочное, за шиворот не капает. P.S. Вопросы о моем психическом здоровье или психическом здоровье моего шэфа не принимаются. P.P.S. Кто-то советовал M. Papazoglou W.Valder Relational Database Management: A Systems Programming Approach. Случайно достал у профа. Выше данную титаническую задачу они не решают, а обходят. Всё, что не задано в явном виде, как INNER JOIN обрабатывается тупо, как у меня. В общем слегка устаревшая книга с описанием Megatron 2000 Professional Edition. Наша БиДе продвинутее.
0
|
|||||||||||||||||||||
| 07.09.2009, 21:29 | |
|
Ошибка FireDac или драйвер ODBC? Не известен драйвер ODBC или расширение файла Посоветуйте пожалуйста книги или уроки по ODBC Бд Access с ADO через Jet или ODBC Подключение к MySql через MySqlConnector или ODBC Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|