Caros,

Há algum tempo atrás, eu achei em algum site(não lembro qual) o código que está neste post http://www.pichler.com.br/axblog/?p=62, analisando o código, podemos perceber que o código já é obsoleto, porque pelo login que o programador usou para fazer a conexão, fica claro que era pra Axapta 3 ou inferior. Quando tentamos rodar o job, temos como resposta a mensagem “Não há mais suporte para esta função.” bem na hora que tentamos setar a propriedade “loginProperty.setUsername”.

O amigo Rodrigo Fraga entrou em contato dizendo que havia tentado fazer o código funcionar, mas que não teve sucesso, foi atrás de outras alternativas e chegou ao código abaixo:

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
server static void SelectFromCusttable(Args _args)
{
  LoginProperty loginProperty;
  OdbcConnection connection;
  Statement statement;
  ResultSet results;
 
  Str sqlStatement = "SELECT * FROM CUSTTABLE";
  str dataSourceName = "AX";
  str databaseName = "Dynamics_br";
  SqlStatementExecutePermission sqlPermission;
  ;
 
  loginProperty = new LoginProperty();
  loginProperty.setDSN(dataSourceName);
  LoginProperty.setDatabase(databaseName);
 
  try
  {
    connection = new OdbcConnection(loginProperty);
    statement = connection.createStatement();
 
    sqlPermission = new SQLStatementExecutePermission(sqlStatement);
    sqlPermission.assert();
 
    results = statement.executeQuery(sQLStatement);
    while (results.next())
    {
      print results.getString(1);
    }
    pause;
  }
  catch(Exception::Error)
  {
    error("error");
  }
}

O DSN criado foi um dsn simples, como é feito desde a época do asp (ou ainda de coisa mais velha! hehehehe) e funciona perfeitamente.

É isso ai, fica registrado como se fazer (agora funciona :D) e não vamos esquecer que os créditos são do Rodrigo Fraga!

Grande abraço,
Ricardo Pichler