Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Рассогласование между наборам данных RecordSet и набором настроек Olecontrol / 16 сообщений из 16, страница 1 из 1
17.01.2011, 18:26
    #37063115
Зяке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
Здраствуйте, форумчане!
не могу справиться со следующей ошибкой -
есть тестовый пример выборки из куба, состоящий из программы и формы с MSHFLEX Grid'ом.

программа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CLOSE TABLES ALL
SET DATE TO GERMAN
SET CENTURY ON
SET TALK OFF
SET SAFETY OFF

PRIVATE oConnection,oRecordSet
STORE [] TO oConnection,oRecordSet

DO FORM form2

RELEASE oConnection,oRecordSet


форма:
Код: 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.
oConnection = CREATEOBJECT("ADODB.Connection")
oRecordSet =  CREATEOBJECT("ADODB.Recordset")

WITH oConnection
   .Provider="MSOLAP.3"
   .OPEN("Data Source=12345;Mode=ReadWrite;Initial Catalog=Northwind_mart")
ENDWITH

ORecordSet.Source="SELECT{[Measures].[Line Item Quantity]} ON COLUMNS,"+;
	"NON EMPTY {[Time Dim].[Year Month].&[April_1997]}*{[Customer Dim].[Hierarchy].[Company Name]} ON ROWS "+;
'FROM 	"Norwthwind Mart 1"'

WITH oRecordSet
	.ActiveConnection = oConnection
	.OPEN()
ENDWITH


With ThisForm.olecontrol1

   !!!! .DataSource = oRecordSet !!!
  	.WordWrap = .T.
	.Redraw=.T.
	.Refresh
ENDWITH



на операторе
.DataSource = oRecordSet (он отмечен восклицательными знаками) возникает ошибка,
OLE error code 0x80020003: Member not found

которую можно успешно игнорировать, а вот избавиться от нее не получается.
но несколько странно - если этот оператор закавычить, то сообщение об ошибке не возникает, но Grid получаем пустой, что означает - действительно не установлен источник данных... Это видимо какое-то рассогласование между тем какой набор данных строит oRecordSet.OPEN() и тем на какой набор настроен olecontrol1-MSHFlexGrid...
ВОзможно кто-то сталкивался с подобным? Заранее большое спасибо!
...
Рейтинг: 0 / 0
17.01.2011, 19:10
    #37063175
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
А если добавить ключевое слово "Object"?

Код: plaintext
.Object.DataSource = oRecordSet
...
Рейтинг: 0 / 0
17.01.2011, 19:17
    #37063187
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
Вот еще пример использования. Там как раз добавлено ключевое слово "Object"

http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=751151&msg=8636974
...
Рейтинг: 0 / 0
17.01.2011, 19:25
    #37063201
Зяке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
У меня есть этот пример и он проходит успешно безо всяких ошибок. Вот только что проверила его.
А у себя в примере попробовала - .object не помогло =(
...
Рейтинг: 0 / 0
17.01.2011, 19:36
    #37063218
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
Если Вы смотрели пример, то там используется не свойство DataSource, а свойство RecordSet

Код: plaintext
ThisForm.Olecontrol1.OBJECT.Recordset = oRecordSet
...
Рейтинг: 0 / 0
17.01.2011, 19:47
    #37063236
Зяке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
Я и так тоже уже пробовала - все равно не выходит
...
Рейтинг: 0 / 0
17.01.2011, 19:51
    #37063241
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
У используемого Вами объекта Olecontrol1 вообще есть свойства DataSource или Recordset? Если попробовать посмотреть их тип

Код: plaintext
1.
2.
?Type("ThisForm.Olecontrol1.OBJECT.Recordset")
?Type("ThisForm.Olecontrol1.OBJECT.DataSource")

Если посмотреть в ObjectBrowser какие есть свойства?
...
Рейтинг: 0 / 0
17.01.2011, 20:07
    #37063253
Зяке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
Спасибо Вам огромное что помогаете! я уже всю голову переломала!
смотрю, как Вы и сказали.
У MSHierarchicalFlexGridLib ( Грид, которым я пользуюсь на форме есть и DataSource{Returns or sets the data source for the control.} и RecordSet {Binds the Hierarchical FlexGrid to an ADO Recordset. Not available at design time.}
...
Рейтинг: 0 / 0
17.01.2011, 20:08
    #37063255
Зяке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
Не совсем поняла как реализовать вот этот просмотр
Код: plaintext
1.
2.
?Type("ThisForm.Olecontrol1.OBJECT.Recordset")
?Type("ThisForm.Olecontrol1.OBJECT.DataSource")
...
Рейтинг: 0 / 0
17.01.2011, 20:34
    #37063281
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
ЗякеНе совсем поняла как реализовать вот этот просмотр
Код: plaintext
1.
2.
?Type("ThisForm.Olecontrol1.OBJECT.Recordset")
?Type("ThisForm.Olecontrol1.OBJECT.DataSource")


Ну, можете через MessageBox() непосредственно перед попыткой присвоение

Код: plaintext
1.
2.
3.
MessageBox("Recordset = " + Type("ThisForm.Olecontrol1.OBJECT.Recordset") + chr( 13 ) + ;
	"DataSource = " + Type("ThisForm.Olecontrol1.OBJECT.DataSource") + chr( 13 ) + ;
	"oRecordSet = " + Type("oRecordSet"))

Если вернет значение "U", значит такого свойства или переменной не существует. Если "О", значит есть.

Впрочем, DataSource точно не "по теме", поскольку не понятно, что именно (какой тип данных) ожидает данное свойство.

Кстати, возможно проблема вовсе не в MSHFLEXGrid, а в RecordSet. Точнее, в запросе. Может, просто не формируется RecordSet? Если создать RecordSet "вручную" будет работать?

Код: 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.
* Создание и наполнение RecordSet "вручную" по одному значению за раз
* Создание RecordSet 
oRecordSet = CreateObject('ADODB.Recordset')  
oFields = oRecordSet.Fields()  

#DEFINE TYPE_INT  3 		&& integer
#DEFINE TYPE_NUM  5 		&& numeric
#DEFINE TYPE_STR  8 		&& character
#DEFINE TYPE_DATE  7   	&& date также возможно значение  133  
#DEFINE TYPE_BOOL  11 	&& logical

#DEFINE adFldIsNullable  32 
#DEFINE adFldMayBeNull  64 

oFields.Append("F1",TYPE_NUM)  && num  
oFields.Append("F2",TYPE_DATE, , adFldIsNullable + adFldMayBeNull) && date   133 
oFields.Append("F3",TYPE_STR) && str  
oFields.Append("F4",TYPE_STR) && str  
oFields.Append("F5",TYPE_BOOL, , adFldIsNullable + adFldMayBeNull) && str  
oFields.Append("F6",TYPE_INT, , adFldIsNullable + adFldMayBeNull) && str  
oRecordSet.Open()  
    
* Наполнение RecordSet  
oRecordSet.AddNew()  
oFields.Item("F1").value =  123   
oFields.Item("F2").value = date()  
oFields.Item("F3").value = "Первая строка" 
oFields.Item("F4").value = "Вторая строка" 
oFields.Item("F5").value = .T.
oFields.Item("F6").value =  100 

(...)

ThisForm.Olecontrol1.OBJECT.Recordset = oRecordSet
...
Рейтинг: 0 / 0
17.01.2011, 20:37
    #37063286
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
Да, и еще, я не в кусре, у FlexGrid есть жесткая настройка соответствия "столбец Grid" - "поле RecordSource"? Не пытаетесь ли Вы подсунуть FlexGrid данные, которые он не может принять? Ну, там имя поля не то, или количество полей не совпадает?
...
Рейтинг: 0 / 0
17.01.2011, 20:52
    #37063314
Зяке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
message box всем вернул значение "О"
Сейчас повнимательнее прочитаю что Вы написали, и еще - если ошибку игнорировать, грид отображает все верно...
...
Рейтинг: 0 / 0
17.01.2011, 22:09
    #37063398
Зяке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
с заполнением в ручную происходит то же самое. =((((
а по поводу настроек mshflexgrid сейчас попробую поискать
...
Рейтинг: 0 / 0
20.01.2011, 00:57
    #37068058
Зяке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
куку
...
Рейтинг: 0 / 0
01.02.2011, 03:08
    #37089651
Зяке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
Привет всем!)
Я прошу прощения за назойливость, но тема все еще актуальна!
Возможно Кто-нибудь может подсказать - можно ли игнорировать всплывающие ошибки?
Ведь коннект проходит, при нажатии ignore, но для диплома недопустимо будет показывать такой вот "кривой" вариант:


заранее спасибо
...
Рейтинг: 0 / 0
05.03.2011, 18:20
    #37151373
Зяке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
Вдруг какому нибудь новечку типа меня будет полезно.
Конечно не вариант,вот так вот" давить ошибку", но все же по другому не получилось =)
итак
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
LPARAMETERS nError, cMethod, nLine
DO CASE
CASE nError= 1426 
OTHERWISE
	eMessageText=[nError=]+LTRIM(STR(nError));
+[; cMethod=]+ALLTRIM(cMethod);
+[; nLine=]+LTRIM(STR(nLine));
			+[; Message=]+ALLTRIM(MESSAGE())
	=MESSAGEBOX(eMessageText)
	CANCEL
ENDCASE
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Рассогласование между наборам данных RecordSet и набором настроек Olecontrol / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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