|
|
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Есть кусок кода Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:13:07 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Применить DAO ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:19:32 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Забыл добавить Предложенный вариант почему-то не проходит (зацикливается). Странно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:19:44 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
НЕ, я имею ввиду не вариации на тему, по координально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:20:46 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Сорри не то выкинул. Вот код! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:25:13 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Во, если мысля через ХП. Пойдёт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:26:17 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Конечно зацикливается Как он у тебя из цикла выйдет если rs.EOF не сразу False Зачем там вообще цикл? ADP or MDB ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:26:41 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Пытаюсь перейти от MDB в ADP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:27:45 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Сдеай ХП кторая вернет тебе готовый результат зачем проверять условие в цикле если его сразу в запрос можно втиснуть. Create procedure MySP (@PName as varchar(100)) AS IF exists(SELECT ADV_REP_Admin FROM Permissions WHERE Name=@PName AND ADV_REP_Admin=1) SELECT Cast(1 AS bit) AS RetCode ELSE SELECT Cast(0 As bit) AS RetCode Prava_yes = CurrentProject.Connection.Execute("dbo.MySP " & Forms!PassForm!PassForm_nam ).Fields(0) If Prava_yes Then Open_ADV_REP = "*" Else Open_ADV_REP = Trim(Forms!PassForm!PassForm_nam) End If ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:38:43 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
апострофы забыл до кучи можно указать в уникоде nvarchar Prava_yes = CurrentProject.Connection.Execute("dbo.MySP N'" & Forms!PassForm!PassForm_nam & "'" ).Fields(0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:42:50 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
в mdb быстрее всего работает dlookup, чем рекордсеты и adodb.command ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:43:09 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Так я от mdb и хочу избавиться. 2 ищ: Кстати разговор не забыл (есть возможность достать мощный ноут, пойдёт?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:51:18 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
CurrentProject.Connection в MDB нет так что реч об ADP adodb.command обращающийся к SQL серверу и использующий в качестве источника запрос с параметром возвратит на клиента уже отобранные сервером данные а следовательно отработает гораздо быстрее dlookup который сначала вытянет на клиента все данные из источника а уже потом применит к ним фильтр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:53:33 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Если правильно понял это ХП Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:55:46 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
2 Latuk: А ты не прав, Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:57:38 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Кстати конструкция CurrentProject.Connection.Execute("блаблабла").Fields(0) полностью заменяет DLookup но в отличии от него может выполнять динамически собранные запросы только если есть вероятность возвращения пустого результата это необходимо доаполнительно обработать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:59:23 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
2 Latuk: Код: plaintext 1. не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 13:28:05 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
a что говорит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 13:36:29 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Create procedure MySP (@PName as varchar(100)) AS --Забыл SET NOCOUNT ON -- IF exists(SELECT ADV_REP_Admin FROM Permissions WHERE Name=@PName AND ADV_REP_Admin=1) SELECT Cast(1 AS bit) AS RetCode ELSE SELECT Cast(0 As bit) AS RetCode ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 13:38:19 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Всё равно выпадает ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 13:43:51 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
А просто запустить ХП из окна базы пробовал? Что возвращает? созданая тобой ХП MySP(название только для примера привел) может имень другой префикс (не dbo) Покажи рзультат сборки строки "dbo.MySP N'" & Forms!PassForm!PassForm_nam & "'" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 13:56:44 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
На сервере отрабатывает правильно, а в коде строка глючит. Использую её в Mdb, поэтому может не понимает? Хотя по-моему можно из mdb ссылаться на ХП, а может я ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 14:32:00 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Proga Использую её в Mdb, поэтому может не понимает? Да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 14:56:19 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
2 Proga Ну вы блин даете !!! авторНа сервере отрабатывает правильно, а в коде строка глючит. Использую её в Mdb, поэтому может не понимает? Хотя по-моему можно из mdb ссылаться на ХП, а может я ошибаюсь? у mdb currentproject.connection конечно есть но оно соеденено с текущей MDB базой в которой нет процедуры dbo.MySP создавай новый конекшен к СЕРВЕРУ и тогда запрашивай оттуда хранимку с префиксом DBO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 14:59:16 |
|
||
|
Как уйти от DlookUP
|
|||
|---|---|---|---|
|
#18+
Приведенный мной код для ADP Для применения его в MDB ты должен понять что происходит CurrentProject.Connection.Execute это вызов метода Execute объекта ADODB.Connection вероятно для MDB тебе придется самому создать этот ADODB.Connection а не использовать готовый CurrentProject.Connection как это происходит в ADP поскольку создание ADODB.Connection довольно ресурсоемко лучше его создать один раз,положить ссылку в глобальную переменную и потом ссылатся через нее Вызов этого метода в случае если ХП возвращает SELECT вернет ссылку на рекордсет Dim rs As ADODB.Recordset Set rs = CurrentProject.Connection.Execute("dbo.MySP N'" & Forms!PassForm!PassForm_nam & "'") созданный этим методом но поскольку мы заранее знаем что рекордсет имеет всего одну строку с одним столбцом а точнее нам необходимо только значение нулевого столбца первой строки то мы не сохраняем ссыку а сразу разименовываем ее получая конкретное свойство столбца строки этого рекордсета Fields(0).Value CurrentProject.Connection.Execute("dbo.MySP N'" & Forms!PassForm!PassForm_nam & "'").Fields(0) Возможно в твоем случае выбор между DAO и ADO происходит автоматически (пиоритет зависит от последовательности соотв библиотек в референс) и ты пытаешся выполнить ХП с помощью DAO.Execute который может выполнить ХП только через специальный "запрос к серверу" или ты создал ХП из отдельного приложения (например QA) а access все это время был открыт а поскольку пречень ХП он засасывает при загрузке (F5-обновить окно БД) то текущий конект попросту считает что ХП с таким именем не существует обрати внимание на префикс ты мог создать ХП vasia.MySP Ассеss может не показывать префиксы но они от этого никуда не деваются. Далнейшее в твоих руках :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 14:59:33 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1590&tid=1673011]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
53ms |
get topic data: |
38ms |
get forum data: |
4ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 467ms |

| 0 / 0 |
