31.05.2007, 15:56 | #1 |
Участник
|
А есть ли документация о том, как подключаться к другим базам?
В стандартной аксапте не нашла описания того, как можно подключаться и манипулировать данными на другом сервере SQL (подключаться не Аксапте из Аксапты). Есть ли документация по описанию методов или прочего?
|
|
31.05.2007, 16:04 | #2 |
Moderator
|
Например, можно глумиться посредством ODBC или ADO:
* класс Connection (System Documentation \Classes \Connection) и его расширения: OdbcConnection, UserConnection * классы CCADO* |
|
31.05.2007, 16:04 | #3 |
Участник
|
Например создать соединение через ODBC. И делать запрос. Ниже пример классика. В котором выберается какая база и делается запрос. Какая-то простая выборка.
|
|
31.05.2007, 16:07 | #4 |
SAP
|
Цитата:
В стандартной аксапте не нашла описания того, как можно подключаться и манипулировать данными на другом сервере SQL (подключаться не Аксапте из Аксапты). Есть ли документация по описанию методов или прочего?
|
|
31.05.2007, 16:11 | #5 |
SAP
|
X++: CCADOConnection connection = new CCADOConnection(); CCADOCommand command = new CCADOCommand(); CCADORecordSet recordSet; CCADORecordSet recordSetLine; CCADOFields fields; CCADOFields fieldsLine; ; try { connection.open("Строка подключения"); command.activeConnection(connection); command.commandText("SQL операторы"); recordSet = command.execute(); while (!recordSet.EOF()) { fields = recordSet.fields(); info(fields.itemIdx(0).value()); recordSet.moveNext(); } } catch(Exception::Error) { throw error("Обработка прекращена."); } |
|
31.05.2007, 17:37 | #6 |
Участник
|
Я воспользовалась и этим примером.
SQL мониторинг + прямой запрос к SQL Все хорошо, но в нем мне надо указывать sa и пароль к нему, а как сделать так , чтоб он реагировал на account win, те. в зависимости от пользователя, вошедшего сеть. |
|
31.05.2007, 17:43 | #7 |
SAP
|
Цитата:
Все хорошо, но в нем мне надо указывать sa и пароль к нему, а как сделать так , чтоб он реагировал на account win, те. в зависимости от пользователя, вошедшего сеть.
|
|
31.05.2007, 17:47 | #8 |
Участник
|
я ограничу доступ к формированию отчета, использующего подключение на уровне Аксапта, вот и все.
|
|
31.05.2007, 17:50 | #9 |
SAP
|
Цитата:
я ограничу доступ к формированию отчета, использующего подключение на уровне Аксапта, вот и все.
Цитата:
Все хорошо, но в нем мне надо указывать sa и пароль к нему, а как сделать так , чтоб он реагировал на account win, те. в зависимости от пользователя, вошедшего сеть.
|
|
31.05.2007, 17:51 | #10 |
Участник
|
А вообще идея следующая, есть 20 баз.
Есть 3 пользователя. Эти пользователи должны получать смешанный отчет из данных аксапта и 20баз. Как тогда правильно это дело реализовать? Просто настроить источник для 20 баз - это много. А скоро еще больше будет. (И потом я плохо понимаю, где тогда надо odbc настраивать, на сервере каждой базы, на аос, аха или где?) Последний раз редактировалось Arahnid; 31.05.2007 в 17:53. |
|
31.05.2007, 18:04 | #11 |
SAP
|
Ну помойму в форме настройки подключений можно ясно указать windows аунтификация, получив строку подключения вам останится в ней менять только названия серверов
X++: COM DataLinks = new COM("DataLinks"); // вызываем окно настройки OLEDB-соединения Connection.ConnectionString(strConnectionString); DataLinks.PromptEdit(Conn); |
|
31.05.2007, 18:10 | #12 |
Участник
|
X++: { ODBCConnection odbc ; Statement statement; ResultSet res; str queryText; FolioConnectionParameters_NV folioConnectionParameters = FolioConnectionParameters_NV::find(); LoginProperty loginProperty; ; loginProperty = new LoginProperty(); loginProperty.setUsername(folioConnectionParameters.UserName); loginProperty.setPassword(folioConnectionParameters.UserPassword); loginProperty.setServer (folioConnectionParameters.ServerName); loginProperty.setDatabase(folioConnectionParameters.Database); odbc = new ODBCConnection(loginProperty); if(odbc) { statement = odbc.createStatement(); queryText = strfmt("SELECT * FROM SCL_ARTC"); odbc.ttsbegin(); res = statement.executeQuery(queryText); res.next(); info(strfmt("%1 %2", res.getString(1), res.getString(2))); odbc.ttscommit(); } } |
|
31.05.2007, 18:11 | #13 |
злыдень
|
Цитата:
Сообщение от Arahnid
А вообще идея следующая, есть 20 баз.
Есть 3 пользователя. Эти пользователи должны получать смешанный отчет из данных аксапта и 20баз. Как тогда правильно это дело реализовать? Просто настроить источник для 20 баз - это много. А скоро еще больше будет. (И потом я плохо понимаю, где тогда надо odbc настраивать, на сервере каждой базы, на аос, аха или где?)
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
31.05.2007, 18:16 | #14 |
Участник
|
win аутентификацию нада указать в на SQL сервере
|
|
31.05.2007, 18:19 | #15 |
SAP
|
Цитата:
используя этот пример, как в него вписать win аутентификацию.
|
|
31.05.2007, 18:26 | #16 |
Участник
|
Тогда такой вопрос, уже более точный.
20 баз на разных серверах. Где надо прописать ODBC, на каком сервере? Какие настройки там лучше сделать, если в СКУЛЬ программе каждый пользователь входит под своим имененем и на это имя заведен пользователь в базе SQL\..\Logins? |
|