Запросы на стороне сервера в Access

zam-ministra
Дата: 02.09.2005 14:39:17
В СУБД MySQL есть функция LAST_INSERT_ID() - идентификатор последней вставленной строки и там она работает. Проблема в том, что если коннектить MySQL -> ODBC -> Access 97 и выполнить в Access запрос c LAST_INSERT_ID() то Access выдает ошибку типа : "Неопределенная функция в выражении LAST_INSERT_ID"
Что делать, как заставить Access выполнять запрос на стороне сервера MySQL, а в Access возвращать только результаты? Поможите народ кто с этим сталкивался.
AlTis
Дата: 02.09.2005 14:40:36
1. Запрос к серверу
2. set rs = cnn.execute "LAST_INSERT_ID()"
zam-ministra
Дата: 02.09.2005 14:49:54
cnn это что за тип данных DataBase! поподроьнее пример кода можно?
ANTIVIR
Дата: 02.09.2005 14:52:07
zam-ministra
cnn это что за тип данных DataBase! поподроьнее пример кода можно?

dim cnn as ADODB.Connection
4321
Дата: 02.09.2005 14:53:47
zam-ministra
cnn это что за тип данных DataBase! поподроьнее пример кода можно?
в данном контексте cnn это коннекшн (переменная с типом Connection). Либо ДАО (ОДБСи-Директ), Либо АДО.
AlTis
Дата: 02.09.2005 14:55:07
set cnn as adodb.connection
set rs as adodb.recordset

cnn.connectionstring="DSN=MySQL_Test;"
cnn.open

set rs = new adodb.recordset
rs.ActiveConnection=cnn
set rs = cnn.execute "SELECT LAST_INSERT_ID()"

debug.print rs(0)
AlTis
Дата: 02.09.2005 14:58:19
звиняюсь:
dim cnn as adodb.connection
dim rs as adodb.recordset

.....
ANTIVIR
Дата: 02.09.2005 15:01:40
AlTis
звиняюсь:
dim cnn as adodb.connection
dim rs as adodb.recordset
.....


Минуту не мог понять разницу между тем и этим, все смотрел на типы данных, только потом посмотрел dim/set
zam-ministra
Дата: 02.09.2005 16:04:32
Глюки кае-то с ADO с ODBC -Direct можно примерчик
4321
Дата: 02.09.2005 16:23:20
zam-ministra
Глюки кае-то с ADO с ODBC -Direct можно примерчик
Делодумаица не в библиотеке, но тем не менее.
Берем хелп:
Sub OpenConnectionX()

	Dim wrkODBC As Workspace
	Dim conPubs As Connection
	Dim conPubs2 As Connection
	Dim conPubs3 As Connection
	Dim conLoop As Connection
	' Создает объект Workspace ODBCDirect.
	Set wrkODBC = CreateWorkspace("NewODBCWorkspace", _
		"admin", "", dbUseODBC)
	' Открывает объект Connection, используя заданную строку 
	' подключения. Если этих данных недостаточно, пользователь
	' может перехватить эту ошибку и не допустить открытия 

' диалогового окна диспетчера драйвера ODBC.
	MsgBox "Открытие Connection1..."
	Set conPubs = wrkODBC.OpenConnection("Connection1", _
		dbDriverNoPrompt, , _
		"ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers")
	
и пишем свое, не забывая явно приписывать библиотеку DAO во все объявления переменных. Вот только навряд ли это поможет справиться с глюком "кривизны рук кодера".