Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка 2580 Не существует источник записей... / 8 сообщений из 8, страница 1 из 1
26.05.2004, 17:08
    #32535158
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 2580 Не существует источник записей...
Ситуация следующая:
Есть ХП, которая возвр. набор записей.
В ней участвует временная таблица, которая (перед вызовом ХП) успешно формируется.
При открытии формы всё ок – процедура отрабатывает, записи возвращаются.
Далее нажимаю на кнопку, которая меняет входные параметры у формы (которые и являются входными параметрами для ХП) – вылетает ошибка “2580 Не существует источник записей… тратата”, причём вылетает через раз 1-ый раз всё ок, 2-ой раз ошибка.
Если делать пошагово, всё нормально отрабатывает. Убираю брикпоинт - глюки

Подозреваю, что ХП не успевает отрабатывать? Или может ещё что.

Adp (officeXP & 2000)
WinXP
SQL-Server2000

Сервис паки вроде все стоят.
Set nocount on в ХП стоит.
...
Рейтинг: 0 / 0
26.05.2004, 17:25
    #32535203
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 2580 Не существует источник записей...
код давай
и хп и vba
...
Рейтинг: 0 / 0
26.05.2004, 17:45
    #32535244
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 2580 Не существует источник записей...
код мудреный очень, запутанный.

Выкладываю как есть

Код: plaintext
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.
35.
ALTER PROCEDURE getAllClientForDepartment
	@DepartmentID INT,
	@flag INT   -- 0 - nonactive, 1 - active, 2 - all 
 
AS

set nocount on

	DECLARE @CodeField VARCHAR( 50 )
	DECLARE @Len INT
	DECLARE @sql VARCHAR( 2000 )

	SET @CodeField = (SELECT CodeField FROM DepartmentTree WHERE ChildID = @DepartmentID)

	SET @Len = LEN(@CodeField)

	SET @sql = 'SELECT Department.DepartmentID, Department.DepartmentName, Client.ClientID, Client.ClientCode, Client.ClientName, Client.ClientLegalName, Client.ClientStatus FROM #DepartmentTree 
	INNER JOIN Department ON Department.DepartmentID = #DepartmentTree.ChildID
	INNER JOIN Client ON Department.DepartmentID = Client.DepartmentID
	WHERE SUBSTRING(CodeField, 1, ' + CAST(@Len AS VARCHAR( 10 )) + ') = ''' + @CodeField + ''' AND LEN(CodeField) >= ' + CAST(@Len AS VARCHAR( 10 )) + ' AND Department.DepartmentType = 1 
	AND Client.ClientStatus '

	SET @sql = @sql + (
		SELECT 
			CASE 
				WHEN @flag =  0  THEN ' = 0 '
				WHEN @flag =  1  THEN ' = 1 '
				WHEN @flag =  2  THEN ' in(0, 1) '
			END) + ' ORDER BY ClientName'
	
	exec(@sql)

 --print @sql
 


+ кнопка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub bt_Click()


On Error GoTo  999 
 
dhCreateTempTable "#DepartmentTree"

Me.InputParameters = "1,2"
Me.RecordSource = "dbo.getAllClientForDepartment"

Exit Sub

 999 :
dhError
'If Err.Number =  2580  Then Resume  0 

End Sub


Делаю по шагам - всё ок, убираю брикпоинт - ошибка
...
Рейтинг: 0 / 0
26.05.2004, 17:50
    #32535255
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 2580 Не существует источник записей...
...
Рейтинг: 0 / 0
27.05.2004, 01:25
    #32535718
AlTis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 2580 Не существует источник записей...
2 Владимир Саныч
Ок, а куда в код поставить DoEvents?

всё перепробовал - результат тот
же - ощибка, если пошагово - всё ок.
Даже написал такой изврат
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub bt_Click()


On Error GoTo  999 
 
DoEvents
dhCreateTempTable "#DepartmentTree"

DoEvents
Me.InputParameters = "1,2"
DoEvents
Me.RecordSource = "dbo.getAllClientForDepartment"
DoEvents

Exit Sub

 999 :
dhError
'If Err.Number =  2580  Then Resume  0 

End Sub

Как дождаться завершения выполнения ХП?
...
Рейтинг: 0 / 0
27.05.2004, 01:26
    #32535720
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 2580 Не существует источник записей...
Я имел в виду поставить перед той строкой, на которой помогает брейкпойнт. Если не получается - значит, я не прав...
...
Рейтинг: 0 / 0
27.05.2004, 10:28
    #32536005
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 2580 Не существует источник записей...
авторMe.RecordSource = "dbo.getAllClientForDepartment"
авторALTER PROCEDURE getAllClientForDepartment

А где во второй строке dbo. ?
...
Рейтинг: 0 / 0
27.05.2004, 10:37
    #32536044
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка 2580 Не существует источник записей...
айтис.

ты явно перемудрил.
во -первх, саму процедуру можно упростить до простого select, а не заниматься сложением строк.
во-вторых. при вы полнении в vba Me.InputParameters = "1,2" до Me.RecordSource = "dbo.getAllClientForDepartment"
происходит перезапрос. по сути дела ты послыаешь на сервер дважды запрос: первый раз с новыми параметрами, но со старым источником, а во второй раз с новым источником.
лучше поставь в InputParameters жесткие ссылки на поля формы, а просто меняй сами значения в этих полях и делай простой перезапрос Me.RecordSource =Me.RecordSource
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка 2580 Не существует источник записей... / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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