powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Странности ADP
25 сообщений из 55, страница 1 из 3
Странности ADP
    #32654739
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начал тут перевод MDB->ADP. Кто-то наверно уже заметил.
В принципе ничего сложного, разве что некоторые заморочки, но в принципе то же, что и MDB, только надо извилины немного подругому направить.
Так вот сталкнулся, с некоторыми странностями (на мой взгляд), хотя может оно должно так быть в ADP. Странности эти обошёл всякие хитростями, если кого заинтересует опишу, но меня волнуют не способы обхода, а нормальное решение появившихся проблем, поэтому задаю свои вопросы форуму, кто знает и сталкивался расскажите, объясните

1) есть в форме контрол(поле со списком), к примеру, PPP, но получается и значений ХП. ХП получена так, обычный SELECT.. в Where a=@b, где b- конторол формы.
Глюк: если у конторола PPP в значение "число столбцов"=1 и "присоедин.столбец"=2, то получаем при выборе контрола PPP вываливается список с значениями, выбираем значение, а оно после выбора сбрасывается, проделал все проверки на присваивание NULL или 'пусто' нифига.

2) Вообще, в принципе DAO в ADP работает, но есть модули, где DAO работает, а есть где - нет, причём не ошибку выдаёт, вытащил ошибку (91) путём Debug.Print err.number

3) Многие предлагают уйти от представлений, но как от них уйти, если ХП у меня образовывается, путём Join-а таблиц и представлений.

4)И самое весёлое, так как занимаюсь разработкой, постоянно юзаю сервак, но не головной (на другой машине), так вот участились случаи падения служб SQL и оболочки .mde(клиент) файл-сервера (сейчас работает ), причём замечу, РАБОЧЕЙ БАЗЫ офиса.
Жду пояснений, нареканий , может что-то не так делаю.
Критикуйте, но выслушу только аргументированную критику.
...
Рейтинг: 0 / 0
Странности ADP
    #32654790
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По пункту 2 - Дао работает в адп при подключённой библиотеке. Всё зависит от того, для чего вы его собираетесь использовать - в адп можно обходиться без дао - используя только адо - и нужно.

Не надо джойнить таблицы и вьюхи - надо уходить от мдб-структуры:) В хп можно сделать какие угодно вычисления и вернуть селект. Только желательно обходиться без курсоров - они работаю медленно.
...
Рейтинг: 0 / 0
Странности ADP
    #32654802
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) "число столбцов"=1 и "присоедин.столбец"=2,
полная ахинея.
не понимай: зачем ты задаешь 1, а пытаешься взять инфу из НЕСУЩЕСТВУЮЩЕГО второго столбца
2)хаммер уже сказал
3)заммер сказал
4)руки кривые
...
Рейтинг: 0 / 0
Странности ADP
    #32654831
Alex_2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Несколько неприятных особенностей, с которыми я столкнулся при написании ADP проекта на Microsoft Access 2000 под MS-SQL сервер 2000.

1. Если Вы используете хранимые процедуры с параметрами, и добавляете их в коллекцию Parameters руками, делайте это строго в порядке перечисления этих параметров в исходном тексте процедуры вне зависимости от того, как именно эти параметры называются. Например, процедура:
Код: plaintext
1.
2.
3.
4.
CREATE PROCEDURE Up_Proc1
@par1 int
		@par2 int
		@par3 int
	AS ...

Для нее кусок, определяющий параметры должен быть таким:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Set oPar = .CreateParameter("@return", adInteger, adParamReturnValue)
oCmd.Parameters.Append oPar
Set oPar = Nothing
Set oPar = .CreateParameter("@par1", adInteger, adParamInput, , par1)
oCmd.Parameters.Append oPar
Set oPar = Nothing
Set oPar = .CreateParameter("@par2", adInteger, adParamInput, , par2)
oCmd.Parameters.Append oPar
Set oPar = Nothing
Set oPar = .CreateParameter("@par3", adInteger, adParamInput, , par3)
oCmd.Parameters.Append oPar
Set oPar = Nothing
Если Вы сделаете например, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Set oPar = .CreateParameter("@return", adInteger, adParamReturnValue)
oCmd.Parameters.Append oPar
Set oPar = Nothing
Set oPar = .CreateParameter("@par1", adInteger, adParamInput, , par1)
oCmd.Parameters.Append oPar
Set oPar = Nothing
Set oPar = .CreateParameter("@par3", adInteger, adParamInput, , par3)
oCmd.Parameters.Append oPar
Set oPar = Nothing
Set oPar = .CreateParameter("@par2", adInteger, adParamInput, , par2)
oCmd.Parameters.Append oPar
Set oPar = Nothing
То в результате, когда все заработает, в процедуру, вместо par2 попадет значение par3 и наоборот.

2. Если не указывать SET NOCOUNT ON в первом операторе хранимой процедуры, то при любой мало-мальски сложной хранимой процедуре (использование нескольких SELECT, временных таблиц, курсоров и т.п.) она перестает нормально выполняться из среды Access (через окно Stored Procedures).

3. При создании отчета, основанного на сложной хранимой процедуре Access перестает видеть поля этой процедуры, при конструировании отчета и выдает ошибку о том, что такого объекта нет в базе данных. Причем сам отчет, если его запустить на выполнение продолжает работать, если в его полях нет функций IIF().

4. У объекта CurrentProject.Connection невозможно вытащить информацию об ошибках SQL-сервера, хотя если создать отдельный объект ADODB.Connection, все вытаскивается нормально.

5. Предположим, что имеется следующая ситуация: на сервере есть VIEW, основанный на таблице. У Вас есть все права на этот VIEW но нет никаких прав на саму таблицу. В самом VIEW присутствует поле первичного ключа таблицы. Несмотря на это Вы не сможете через этот VIEW ничего изменить - данные всегда будут доступны только для чтения. В результате придется или давать всем права на сами таблицы, или писать руками форму + пару хранимых процедур на чтение/запись данных одной строки таблицы.

Вот пока все, что накопал. Может кому пригодится.
...
Рейтинг: 0 / 0
Странности ADP
    #32654967
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот глюк, который я вообще понять не могу,
вот часть кода (в ADP):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Set cnn = New ADODB.Connection
    Set cnn = CurrentProject.Connection
    If Me.Ed_fl =  0  Then
    Set t = New ADODB.Recordset
    t.Open "base_plat", cnn, adOpenDynamic, adLockOptimistic, adCmdTable
t.AddNew
        t!Contract_for_pay = Me.Contract_for_pay
        t!Pay_type = Me.Pay_type
        t!Type_doc_of_contr = Val(Me.Type_doc_of_contr)
        If IsNull(DOC_ATT_ID) = False Then
            t!Id_doc_contr = Val(Me.DOC_ATT_ID)
        End If
        t!Date_time = Me.Date_time
        
        t!Who_pay = Me.Who_pay
t.Update
Не работает.
...
Рейтинг: 0 / 0
Странности ADP
    #32654981
йййй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Proga, ты первый день на форуме?

Не работает.
И заепись
...
Рейтинг: 0 / 0
Странности ADP
    #32654982
Galustov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ProgaА вот глюк, который я вообще понять не могу,
вот часть кода (в ADP):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Set cnn = New ADODB.Connection
    Set cnn = CurrentProject.Connection
    If Me.Ed_fl =  0  Then
    Set t = New ADODB.Recordset
    t.Open "base_plat", cnn, adOpenDynamic, adLockOptimistic, adCmdTable
t.AddNew
        t!Contract_for_pay = Me.Contract_for_pay
        t!Pay_type = Me.Pay_type
        t!Type_doc_of_contr = Val(Me.Type_doc_of_contr)
        If IsNull(DOC_ATT_ID) = False Then
            t!Id_doc_contr = Val(Me.DOC_ATT_ID)
        End If
        t!Date_time = Me.Date_time
        
        t!Who_pay = Me.Who_pay
t.Update
Не работает.

а где не работает и какую ошибку выдаёт можно узнать?
...
Рейтинг: 0 / 0
Странности ADP
    #32654995
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВЫПАДАЕТ НА Update, ошибка не вываливается, смотри пост Alex_2004: пункт.4
...
Рейтинг: 0 / 0
Странности ADP
    #32655011
йййй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВЫПАДАЕТ НА Update, ошибка не вываливается
А выпадает, надо полагать, компутер из окна.
Молча. Без каких-либо сообщений.
...
Рейтинг: 0 / 0
Странности ADP
    #32655027
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первичный ключ в base_plat конечно, есть.
...
Рейтинг: 0 / 0
Странности ADP
    #32655039
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, просто молча, без показа ошибки, нажимаю кнопку на форме, по идее должна происходить запись в таблу, но ничего не делает. В отладчике запустил, когда дошёл до Update, сразу перешёл в конец программы.
...
Рейтинг: 0 / 0
Странности ADP
    #32655041
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Витал: конечно есть
...
Рейтинг: 0 / 0
Странности ADP
    #32655074
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё перепробывал, ничего не помогает, мужики помогайте, первый раз такое вижу, даже и в голову не приходит на что ещё посмотреть.
...
Рейтинг: 0 / 0
Странности ADP
    #32655078
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так попробовать?

Код: plaintext
1.
2.
rs.CursorType = adOpenForwardOnly
rs.LockType = adLockOptimistic
rs.Open "Select * From base_plat", cnn
...
Рейтинг: 0 / 0
Странности ADP
    #32655109
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати сказать, баги 2000-го меня давно перебросили на ХР. Так что если у Вас А2000 попробуйте тоже самое в А2002.
...
Рейтинг: 0 / 0
Странности ADP
    #32655138
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бесполезно. А у меня 2002.
...
Рейтинг: 0 / 0
Странности ADP
    #32655152
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProgaБесполезно. А у меня 2002.

Бесполезен 2002 или код?

ProgaВЫПАДАЕТ НА Update, ошибка не вываливается, смотри пост Alex_2004: пункт.4

А VBA что говорит? Есть там обработчик ошибок?
...
Рейтинг: 0 / 0
Странности ADP
    #32655196
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Витал: КОД попробывал, что ты предложил, не помогает.
Обработчик ошибку не выкидывает, просто программу закрывает.
...
Рейтинг: 0 / 0
Странности ADP
    #32655214
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Proga2 Витал: КОД попробывал, что ты предложил, не помогает.
Обработчик ошибку не выкидывает, просто программу закрывает.

Т.е. несмотря на то что у тебя в проце стоит
On Error GOTO ex

....
ex:
err.Number & " " err.Description

молча вылетает?
...
Рейтинг: 0 / 0
Странности ADP
    #32655225
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот тока час назад говорили:
для добавления записи НЕ НАДО открывать всю таблицу
делай все запросом

и этот код выкладывает товарищчь, претендующий на работу в 1000 долларов.
...
Рейтинг: 0 / 0
Странности ADP
    #32655258
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ищ: Да как только я не делал, всё равно не получается.
Это что-то с софтом, буду рыть. Найду и убью эту глюку по любому.
Хватит наезжать, лучше б помог, вот сталкнёшься и помочь будет некому.
...
Рейтинг: 0 / 0
Странности ADP
    #32655293
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот и нашёл я ГЛЮКУ, ха-ха.
Оказывается DTS при переносе базы напартачил, скинул пару значений
allow null.
Не верьте DTS он всё врёт(за ним надо проверять, причём оказывается дважды).
...
Рейтинг: 0 / 0
Странности ADP
    #32655301
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык. Все равно странно, что обработчик не выдал сообщение

MsgBox Err.Number & " " & Err.Description

я пригорюнился
...
Рейтинг: 0 / 0
Странности ADP
    #32655305
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Proga
ДТС не портачит - портачит тот, кто его делает:) ДТС - мощнейшее средство СКЛ сервера.
...
Рейтинг: 0 / 0
Странности ADP
    #32655309
йййй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Плохой проге ДТС мешает однако :)
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 1 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Странности ADP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]