powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / ODBC и Oracle client 10g 32-bit на WinServer 2003 64-bit
3 сообщений из 3, страница 1 из 1
ODBC и Oracle client 10g 32-bit на WinServer 2003 64-bit
    #36210318
Lovkach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Необходимо настроить ODBC соединение на Windows Server 2003 64-bit с использованием Oracle client 10g 32-bit. Был уже установлен 64-разрядный клиент оракла. Дополнительно установил 32-разрядный клиент. Соответствующий драйвер появился в C:\WINDOWS\SysWOW64\odbcad32.exe. Но при создании DNS появляется ошибка "The setup routines for the Oracle ora_home ODBC driver could not de loaded due to system error code 998". Проверил наличие пути в переменных окружения на \bin.
...
Рейтинг: 0 / 0
ODBC и Oracle client 10g 32-bit на WinServer 2003 64-bit
    #36210347
Фотография С0ВЕСТЬ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разве нет 64-разрядного драйвера ODBC?
На х64 многие х32-драйвера не работают!




Код: 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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
void Matrix3::QDUDecomposition (Matrix3& kQ, Vector3& kD, Vector3& kU) const
{
	// Factor M = QR = QDU where Q is orthogonal, D is diagonal,
	// and U is upper triangular with ones on its diagonal.  Algorithm uses
	// Gram-Schmidt orthogonalization (the QR algorithm).
	//
	// If M = [ m0 | m1 | m2 ] and Q = [ q0 | q1 | q2 ], then
	//
	//   q0 = m0/|m0|
	//   q1 = (m1-(q0*m1)q0)/|m1-(q0*m1)q0|
	//   q2 = (m2-(q0*m2)q0-(q1*m2)q1)/|m2-(q0*m2)q0-(q1*m2)q1|
	//
	// where |V| indicates length of vector V and A*B indicates dot
	// product of vectors A and B.  The matrix R has entries
	//
	//   r00 = q0*m0  r01 = q0*m1  r02 = q0*m2
	//   r10 =  0       r11 = q1*m1  r12 = q1*m2
	//   r20 =  0       r21 =  0       r22 = q2*m2
	//
	// so D = diag(r00,r11,r22) and U has entries u01 = r01/r00,
	// u02 = r02/r00, and u12 = r12/r11.

	// Q = rotation
	// D = scaling
	// U = shear

	// D stores the three diagonal entries r00, r11, r22
	// U stores the entries U[ 0 ] = u01, U[ 1 ] = u02, U[ 2 ] = u12

	// build orthogonal matrix Q
	Real fInvLength = Math::InvSqrt(m[ 0 ][ 0 ]*m[ 0 ][ 0 ] +
		m[ 1 ][ 0 ]*m[ 1 ][ 0 ] + m[ 2 ][ 0 ]*m[ 2 ][ 0 ]);
	kQ[ 0 ][ 0 ] = m[ 0 ][ 0 ]*fInvLength;
	kQ[ 1 ][ 0 ] = m[ 1 ][ 0 ]*fInvLength;
	kQ[ 2 ][ 0 ] = m[ 2 ][ 0 ]*fInvLength;

	Real fDot = kQ[ 0 ][ 0 ]*m[ 0 ][ 1 ] + kQ[ 1 ][ 0 ]*m[ 1 ][ 1 ] +
		kQ[ 2 ][ 0 ]*m[ 2 ][ 1 ];
	kQ[ 0 ][ 1 ] = m[ 0 ][ 1 ]-fDot*kQ[ 0 ][ 0 ];
	kQ[ 1 ][ 1 ] = m[ 1 ][ 1 ]-fDot*kQ[ 1 ][ 0 ];
	kQ[ 2 ][ 1 ] = m[ 2 ][ 1 ]-fDot*kQ[ 2 ][ 0 ];
	fInvLength = Math::InvSqrt(kQ[ 0 ][ 1 ]*kQ[ 0 ][ 1 ] + kQ[ 1 ][ 1 ]*kQ[ 1 ][ 1 ] +
		kQ[ 2 ][ 1 ]*kQ[ 2 ][ 1 ]);
	kQ[ 0 ][ 1 ] *= fInvLength;
	kQ[ 1 ][ 1 ] *= fInvLength;
	kQ[ 2 ][ 1 ] *= fInvLength;

	fDot = kQ[ 0 ][ 0 ]*m[ 0 ][ 2 ] + kQ[ 1 ][ 0 ]*m[ 1 ][ 2 ] +
		kQ[ 2 ][ 0 ]*m[ 2 ][ 2 ];
	kQ[ 0 ][ 2 ] = m[ 0 ][ 2 ]-fDot*kQ[ 0 ][ 0 ];
	kQ[ 1 ][ 2 ] = m[ 1 ][ 2 ]-fDot*kQ[ 1 ][ 0 ];
	kQ[ 2 ][ 2 ] = m[ 2 ][ 2 ]-fDot*kQ[ 2 ][ 0 ];
	fDot = kQ[ 0 ][ 1 ]*m[ 0 ][ 2 ] + kQ[ 1 ][ 1 ]*m[ 1 ][ 2 ] +
		kQ[ 2 ][ 1 ]*m[ 2 ][ 2 ];
	kQ[ 0 ][ 2 ] -= fDot*kQ[ 0 ][ 1 ];
	kQ[ 1 ][ 2 ] -= fDot*kQ[ 1 ][ 1 ];
	kQ[ 2 ][ 2 ] -= fDot*kQ[ 2 ][ 1 ];
	fInvLength = Math::InvSqrt(kQ[ 0 ][ 2 ]*kQ[ 0 ][ 2 ] + kQ[ 1 ][ 2 ]*kQ[ 1 ][ 2 ] +
		kQ[ 2 ][ 2 ]*kQ[ 2 ][ 2 ]);
	kQ[ 0 ][ 2 ] *= fInvLength;
	kQ[ 1 ][ 2 ] *= fInvLength;
	kQ[ 2 ][ 2 ] *= fInvLength;

	// guarantee that orthogonal matrix has determinant  1  (no reflections)
	Real fDet = kQ[ 0 ][ 0 ]*kQ[ 1 ][ 1 ]*kQ[ 2 ][ 2 ] + kQ[ 0 ][ 1 ]*kQ[ 1 ][ 2 ]*kQ[ 2 ][ 0 ] +
		kQ[ 0 ][ 2 ]*kQ[ 1 ][ 0 ]*kQ[ 2 ][ 1 ] - kQ[ 0 ][ 2 ]*kQ[ 1 ][ 1 ]*kQ[ 2 ][ 0 ] -
		kQ[ 0 ][ 1 ]*kQ[ 1 ][ 0 ]*kQ[ 2 ][ 2 ] - kQ[ 0 ][ 0 ]*kQ[ 1 ][ 2 ]*kQ[ 2 ][ 1 ];

	if ( fDet <  0 . 0  )
	{
		for (size_t iRow =  0 ; iRow <  3 ; iRow++)
			for (size_t iCol =  0 ; iCol <  3 ; iCol++)
				kQ[iRow][iCol] = -kQ[iRow][iCol];
	}

	// build "right" matrix R
	Matrix3 kR;
	kR[ 0 ][ 0 ] = kQ[ 0 ][ 0 ]*m[ 0 ][ 0 ] + kQ[ 1 ][ 0 ]*m[ 1 ][ 0 ] +
		kQ[ 2 ][ 0 ]*m[ 2 ][ 0 ];
	kR[ 0 ][ 1 ] = kQ[ 0 ][ 0 ]*m[ 0 ][ 1 ] + kQ[ 1 ][ 0 ]*m[ 1 ][ 1 ] +
		kQ[ 2 ][ 0 ]*m[ 2 ][ 1 ];
	kR[ 1 ][ 1 ] = kQ[ 0 ][ 1 ]*m[ 0 ][ 1 ] + kQ[ 1 ][ 1 ]*m[ 1 ][ 1 ] +
		kQ[ 2 ][ 1 ]*m[ 2 ][ 1 ];
	kR[ 0 ][ 2 ] = kQ[ 0 ][ 0 ]*m[ 0 ][ 2 ] + kQ[ 1 ][ 0 ]*m[ 1 ][ 2 ] +
		kQ[ 2 ][ 0 ]*m[ 2 ][ 2 ];
	kR[ 1 ][ 2 ] = kQ[ 0 ][ 1 ]*m[ 0 ][ 2 ] + kQ[ 1 ][ 1 ]*m[ 1 ][ 2 ] +
		kQ[ 2 ][ 1 ]*m[ 2 ][ 2 ];
	kR[ 2 ][ 2 ] = kQ[ 0 ][ 2 ]*m[ 0 ][ 2 ] + kQ[ 1 ][ 2 ]*m[ 1 ][ 2 ] +
		kQ[ 2 ][ 2 ]*m[ 2 ][ 2 ];

	// the scaling component
	kD[ 0 ] = kR[ 0 ][ 0 ];
	kD[ 1 ] = kR[ 1 ][ 1 ];
	kD[ 2 ] = kR[ 2 ][ 2 ];

	// the shear component
	Real fInvD0 =  1 . 0 /kD[ 0 ];
	kU[ 0 ] = kR[ 0 ][ 1 ]*fInvD0;
	kU[ 1 ] = kR[ 0 ][ 2 ]*fInvD0;
	kU[ 2 ] = kR[ 1 ][ 2 ]/kD[ 1 ];
}
...
Рейтинг: 0 / 0
ODBC и Oracle client 10g 32-bit на WinServer 2003 64-bit
    #36210376
Lovkach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно есть и успешно работает.
Но этот факт не влияет на поставленную задачу.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / ODBC и Oracle client 10g 32-bit на WinServer 2003 64-bit
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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