powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
16 сообщений из 16, страница 1 из 1
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
    #37063115
Зяке
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте, форумчане!
не могу справиться со следующей ошибкой -
есть тестовый пример выборки из куба, состоящий из программы и формы с 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
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
    #37063175
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если добавить ключевое слово "Object"?

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

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

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

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

Если посмотреть в ObjectBrowser какие есть свойства?
...
Рейтинг: 0 / 0
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
    #37063253
Зяке
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Вам огромное что помогаете! я уже всю голову переломала!
смотрю, как Вы и сказали.
У 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
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
    #37063255
Зяке
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем поняла как реализовать вот этот просмотр
Код: plaintext
1.
2.
?Type("ThisForm.Olecontrol1.OBJECT.Recordset")
?Type("ThisForm.Olecontrol1.OBJECT.DataSource")
...
Рейтинг: 0 / 0
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
    #37063281
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗякеНе совсем поняла как реализовать вот этот просмотр
Код: 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
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
    #37063286
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, и еще, я не в кусре, у FlexGrid есть жесткая настройка соответствия "столбец Grid" - "поле RecordSource"? Не пытаетесь ли Вы подсунуть FlexGrid данные, которые он не может принять? Ну, там имя поля не то, или количество полей не совпадает?
...
Рейтинг: 0 / 0
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
    #37063314
Зяке
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
message box всем вернул значение "О"
Сейчас повнимательнее прочитаю что Вы написали, и еще - если ошибку игнорировать, грид отображает все верно...
...
Рейтинг: 0 / 0
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
    #37063398
Зяке
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с заполнением в ручную происходит то же самое. =((((
а по поводу настроек mshflexgrid сейчас попробую поискать
...
Рейтинг: 0 / 0
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
    #37068058
Зяке
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
куку
...
Рейтинг: 0 / 0
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
    #37089651
Зяке
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!)
Я прошу прощения за назойливость, но тема все еще актуальна!
Возможно Кто-нибудь может подсказать - можно ли игнорировать всплывающие ошибки?
Ведь коннект проходит, при нажатии ignore, но для диплома недопустимо будет показывать такой вот "кривой" вариант:


заранее спасибо
...
Рейтинг: 0 / 0
Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
    #37151373
Зяке
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вдруг какому нибудь новечку типа меня будет полезно.
Конечно не вариант,вот так вот" давить ошибку", но все же по другому не получилось =)
итак
Код: 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
16 сообщений из 16, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Рассогласование между наборам данных RecordSet и набором настроек Olecontrol
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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