Показать сообщение отдельно
Старый 29.06.2011, 14:07   #11  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Если у Вас MS SQL Server, то вот пример:
1) Создайте на MS SQL таблицу, в которой одно поле текстовое, второе поле со свойством identity.
2) Создайте на MS SQL хранимую процедуру с названием "spTestReturnRecordset", в теле которой напишите что-то наподобие
X++:
INSERT INTO MyTable (MyFieldName) Values ('Дядя Петя')
SELECT @@identity
3) Напишите в Аксапте джоб
В результате работы этого джоба в инфологе Аксапты будет отображен идентификатор добавленой записи.
X++:
static void DD_StoredProcReturnRecordsetTest(Args _args) 
{ 
    str     serverName      = "Server"; 
    str     baseName        = "Database"; 
    str     userId          = "UserId"; 
    str     userPassword    = "Password"; 
    CCADOConnection         cn; 
    COM                     comCN; 
    COM                     cmd; 
    CCADORecordset          rs; 
    int                     i; 
    ; 

    cn = new CCADOConnection(); 
    cn.open( 
        "Provider=SQLOLEDB;"+ 
        "Data Source="      + serverName    +   ";" + 
        "Initial Catalog="  + baseName      +   ";" + 
        "uid="              + userId        +   ";" + 
        "pwd="              + userPassword); 

    comCN = cn.connection(); 

    cmd     = new COM("ADODB.Command"); 
    cmd.activeConnection(comCN); 
    cmd.commandType(4);  //adCmdStoredProc, see ObjectBrowser in VBA   
    cmd.CommandText("spTestReturnRecordset"); 
    rs = new CCADORecordset(cmd.Execute()); 
    while (!rs.eof()) 
    { 
        info(strfmt("%1", rs.fields().itemIdx(0).value())); 
        rs.movenext(); 
    } 

    cn.close(); 
}
ЗЫ: уже опередили

Последний раз редактировалось Ace of Database; 29.06.2011 в 14:09.