|
|
|
возможна ли такая конструкция?
|
|||
|---|---|---|---|
|
#18+
создается строка, например strSQL="select * from" Можно ли программном запуске запроса после from указать не явное имя таблицы или запроса, использовать ранее сщзданный временный объект QueryDef например такой: set qdf=currentDB.CreateQueryDef("") ' (т.е. мне не надо создавать его в окне БД) qdf.sql="Select..... from <несколько связанных таблиц>" как использовать qdf в качестве параметра в секции from строки strSQL ? если это возможно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 05:01 |
|
||
|
возможна ли такая конструкция?
|
|||
|---|---|---|---|
|
#18+
Возможно: Вот примерный вариант - просто кусок кода. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Fname - имя первого запроса, fname_1 - имя второго запроса, strSQL - SQL инструкция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 09:25 |
|
||
|
возможна ли такая конструкция?
|
|||
|---|---|---|---|
|
#18+
но ты ведь все равно указываешь имя запроса хоть и склеиваешь строки. Это понятно, а как быть если запрос без имени, т.е. только в памяти? можно ли его использовать в качестве источника для sql-строки? т.е запрос не такой Set qdf = db.CreateQueryDef(fname, strSQL), а такой Set qdf = db.CreateQueryDef("", strSQL) Его нет как такового, он только в оперативке сидит. Т.е. FROM [" & fname_1 & "] как написать если fname_1 нет. Кстати не обязательно запрос должен быть связующий несколько таблиц например SELECT * from (а здесь надо каким-то образом указать на qdf) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 09:39 |
|
||
|
возможна ли такая конструкция?
|
|||
|---|---|---|---|
|
#18+
Да указываю, пусть создаёт его в БД с именем, потом я его удаляю, на момент написания мне так показалось проще:) Это писалось для экспорта данных в Ексель из формы с фильтрами (т.е. первый запрос - одна форма с применённым фильтром, второй - вторая, потом вяжутся и кидаются в ексель - получается гораздо быстрее, чем бегать по рекрдсетам - но это так - оффтоп). Когда писал - не нашёл способа селекта из запроса в памяти. Сейчас вообще так не работаю честно говоря - всё пишется на ХП, работаю с adp. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 09:51 |
|
||
|
возможна ли такая конструкция?
|
|||
|---|---|---|---|
|
#18+
SELECT * from (а здесь надо каким-то образом указать на qdf) Ты ж дбф из строки создаешь? Тогда, м.б., проще так: SELECT * from (SELECT * from ...) ... (А2000, А2002) SELECT * from [SELECT * from ]. ... (A97) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 09:54 |
|
||
|
возможна ли такая конструкция?
|
|||
|---|---|---|---|
|
#18+
2 Geo Один вопрос - сколько вложенных селектов поддерживает аксес? Уже подзабыл, но ограничения есть по-моему. Поэтому может возникнуть необходимость создания отдельных подзапросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 09:58 |
|
||
|
возможна ли такая конструкция?
|
|||
|---|---|---|---|
|
#18+
>>SELECT * from (а здесь надо каким-то образом указать на qdf) Ну можно вывернуться так, обратись к его свойству: qdf.SQL (особенности вставки во FROM SELECT'а уже было на сайте ) - ну сам понимаешь, что вставляется по сути только строка, т.е. компиляция и запуск этого qdf никак не помогут в итоговом запросе, он вообще по сути начинает тогда выполнять только одну тупую роль - хранения SQL строки, а учитывая что qdf это временный запрос, то смысла особого в нем нет, проще в переменной держать SQL строку, только если ты не используешь этот запрос в коде несколько раз (например с параметром), тогда можно и сдуть у qdf последнею SQL строку... Так что сам видишь, смысл в этом временном запросе в твоем случае весьма относителен, проще создать не временный запрос, а обычный, а потом его удалить - я так обычно делаю, и никаких проблем, а еще ....., тут уже обсуждали в одном топике стратегию хранения и использования запросов, подумай, можнт имеет большой смысл хранить этот запрос постоянно - для промежуточного использования в итогвом запросе - а в что в этом такого (сохр. запрос совершенно не обязательно должен быть итоговым, чтобы на него любоваться) преймуществ масса: 1. компилишь его и так хранишь - лучше по скорости 2. параметры - не дадаут ему засохнуть от старости и ненужности :-) 3. виден в окне базы, не надо лазить в код чтобы подправить, и никогда его не потеряешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 10:03 |
|
||
|
возможна ли такая конструкция?
|
|||
|---|---|---|---|
|
#18+
97 имхо только один вложенный select и достаточно простой. В A'XP проблем со вложенностью быть не должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 10:05 |
|
||
|
возможна ли такая конструкция?
|
|||
|---|---|---|---|
|
#18+
можно попробовать. но тот select который в секции from - ретранслируемый, т.е. прямой запрос к серверу (dbo.таблица.поле), а первый select аксессовский, будет ли он работать? у меня A97 Сейчас попробую. Спасибо за совет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 10:06 |
|
||
|
возможна ли такая конструкция?
|
|||
|---|---|---|---|
|
#18+
2Geo: А у меня в A2002 только так поддерживает - SELECT * from [SELECT * from ] почему-то (правда я это проверял до установки SP1,2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 10:06 |
|
||
|
возможна ли такая конструкция?
|
|||
|---|---|---|---|
|
#18+
2Hummer Не знаю, но лично мне твой вариант предпочтительнее кажется. 2SergeySV А фик знает. У меня с круглыми работает. И с и без сервиспаков. Надо бы как-нибудь разобраться с этими вложенностями. Как руки дойдут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 10:13 |
|
||
|
возможна ли такая конструкция?
|
|||
|---|---|---|---|
|
#18+
2 Geo Ну мне в общем-то тоже, потому его и использовал в своё время:) 2 K_Николай Ещё такой момент, постарайтесь не вязать акссесовские таблицы, селекты с таблицами серверными (связанными через ODBC например) - получите тормоза. Либо создание временных таблиц на сервере с данными из аксеса - потом связь, либо формирование выборки на сервере с переменными параметрами, а потом передача в аксес - во временную таблицу, а потом связь. Предпочтительнее первый вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 10:19 |
|
||
|
|

start [/forum/topic.php?fid=45&tid=1678957]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 396ms |

| 0 / 0 |
