AX 文件内容的读写

X++ 这方面使用的是.net Framework,读取文件时,要权限放行。

以下代码,会看到可爱的System.IO.SteamReader。如此熟悉,感动ing。。。

 

static void readJob(Args _args)
{
    System.IO.StreamReader m_streader;
    InteropPermission m_Perm = new InteropPermission(InteropKind::ClrInterop);
    Notes      m_Notes;

    m_Perm.assert();

    m_streader = new System.IO.StreamReader(@"C:\ms\n01yan_100.copy");

    while(int642int(m_streader.Peek())>0)
    {
        m_Notes += m_streader.ReadToEnd();
    }

    m_streader.Close();
    m_streader.Dispose();

    CodeAccessPermission::revertAssert();

    info(m_Notes);

//   pause;
}

 

 写入

 

static void StreamWriter(Args _args)
{
    System.IO.StreamWriter sw;
    InteropPermission perm = new InteropPermission(InteropKind::ClrInterop);
    SalesTable   st;
    ;

    perm.assert();

    sw = new System.IO.StreamWriter(@"C:\test.txt");
    while select st
    {
       sw.WriteLine(st.SalesId);
       sw.WriteLine(st.CustAccount + "    " + Date2str(st.DeliveryDate,321,2,3,2,3,4));

    }

    sw.Flush();
    sw.Close();
    sw.Dispose();

    CodeAccessPermission::revertAssert();}

 

posted @ 2011-12-13 13:43 Kurodo 阅读(20) 评论(0) 编辑

AX调用存储过程

X++ 通过OdbcConnection访问数据库,调用存储过程。

要注意一点,调用存储过程的窗体或者类方法等,必须要有开发者权限。

 

static void SpJob(Args _args)
{
    LoginProperty                   m_loginProperty;    //登录配置
    OdbcConnection                  m_connection;       //链接对象
    Statement                       m_stmt;             //状态
    ResultSet                       m_sqlres;           //结果集
    Str                             m_strSQL;           //查询字符串
    SqlStatementExecutePermission   m_permission;       //执行权限
    ;

    m_loginProperty = new LoginProperty();
    m_loginProperty.setServer("Kurodo\\SQL2008");
    m_loginProperty.setServer("AX_DEV");
    m_connection = new OdbcConnection(m_loginProperty);
    m_stmt = m_connection.createStatement();
    m_strSQL = strfmt("exec Sp_SelectSp '%1','%2'",11,22);  //执行存储过程参数 11 22
    m_permission = new SQLStatementExecutePermission(m_strSQL);
    m_permission.assert();
    m_sqlres = m_stmt.executeQuery(m_strSQL);
    CodeAccessPermission::revertAssert();
    while(m_sqlres.next())
    {
        info(strfmt("ID: %1 Name: %2",m_sqlres.getInt(1),m_sqlres.getString(2)));  //数据集对应类型
    }

    pause;
}

 

posted @ 2011-12-13 12:02 Kurodo 阅读(35) 评论(0) 编辑