Показаны различия между двумя версиями страницы.
axapta:доступковнешнимбазам [2018/04/13 22:43] |
axapta:доступковнешнимбазам [2018/04/13 22:43] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | Можно получить доступ ко внешним источникам данных через | ||
+ | *ADO: см http:// | ||
+ | *Через классы семейства Connection (см. [[AOT | ]] \ System Documentation \ Classes): | ||
+ | *Connection | ||
+ | *OCIConnection | ||
+ | *ODBCConnection | ||
+ | *UserConnection | ||
+ | *Statement | ||
+ | ---- | ||
+ | Connecting to a Database via ODBC | ||
+ | In AX you can connect to outside databases through AX's built in ODBC, | ||
+ | LoginProperty, | ||
+ | It's really very handy, espcially when connecting AX to already existing databases that AX needs data from, or needs to interact with. | ||
+ | |||
+ | Below is some example code that will connect to a Database, and loop through a select statements resultset: | ||
+ | <code XPP> | ||
+ | OdbcConnection cn; | ||
+ | Statement s; | ||
+ | ResultSet rs; | ||
+ | LoginProperty lp; | ||
+ | str SQL; | ||
+ | |||
+ | // Field Variables | ||
+ | int Seq; | ||
+ | str Field1; | ||
+ | str Field2; | ||
+ | ; | ||
+ | |||
+ | // Create new Login property instance | ||
+ | lp = new LoginProperty(); | ||
+ | lp.setDatabase(" | ||
+ | lp.setServer(" | ||
+ | lp.setUserName(" | ||
+ | lp.setPassword(" | ||
+ | |||
+ | // Create new OdbcConnection instance, and pass it the LoginProperty just created above | ||
+ | cn = new OdbcConnection(lp); | ||
+ | |||
+ | // Create new Statement instance | ||
+ | s = new Statement(); | ||
+ | |||
+ | // Set the SQL statement | ||
+ | SQL = " | ||
+ | |||
+ | // Now fille the ResultSet, and pass it the Select Statement | ||
+ | rs = s.executeQuery(SQL); | ||
+ | |||
+ | while(rs.next()) | ||
+ | { | ||
+ | // Fill the field vairables now | ||
+ | Seq = rs.getInt(1); | ||
+ | Field1 = rs.getString(2); | ||
+ | Field2 = rs, | ||
+ | |||
+ | // Below here preform some logic on the data, or do some action | ||
+ | ... | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | Получать данные надо в том же порядке, | ||
+ | |||
+ | В трехзвенной конфигурации не работает функция getDate в [[Класс/ | ||
+ | (см. [[AxForum: | ||
+ | <code XPP> | ||
+ | TransDate docDate; | ||
+ | str | ||
+ | boolean | ||
+ | OdbcConnection connection; | ||
+ | LoginProperty lp; | ||
+ | Statement | ||
+ | ResultSet | ||
+ | # | ||
+ | |||
+ | lp = new LoginProperty(); | ||
+ | lp.setDSN(' | ||
+ | lp.setUsername(' | ||
+ | lp.setPassword(' | ||
+ | connection = new OdbcConnection(lp); | ||
+ | statement | ||
+ | isODBCSQLAccess = (connection = odbcGetInfoStr(# | ||
+ | isODBCSQLServer | ||
+ | sSQL = ' | ||
+ | if (isODBCSQLServer) | ||
+ | { | ||
+ | sSQL += ', CONVERT(varchar(50), | ||
+ | } | ||
+ | if (isODBCAccess) | ||
+ | { | ||
+ | sSQL += ', DOCUMENTDATE AS DOCDATE'; | ||
+ | } | ||
+ | resultSet = statement.executeQuery(sSQL); | ||
+ | docDate = str2date(resultSet.getString(i), | ||
+ | </ | ||
+ | ---- | ||
+ | *[[http:// | ||
+ | *[[http:// | ||
+ | *[[http:// | ||
+ | *[[http:// |