Consultas de SAP en HANA con DIAPI

Hola, alguien me puede ayudar, estoy creando un portal en c#, la máquina donde desarrollo tiene sap 10 con windows y donde voy a montar el portal cuenta con sap 10 con hana, tengo la configuración para trabajar con diapi, la conexión a la base de datos se realiza de manera correcta, en mie quipo de desarrollo con windos, ingreso sin problemas y hace todas las consultas, pero cuando lo paso al servidor con hana me manda el siguiente error:


no si me me haga falta configurar o instalar algo mas en el servidor donde tengo hana, agradezco de antemano su ayuda.

En principio no es lo mismo que estés conectando SQL Server y Hana, la conexión es diferente similar pero diferente. Ademas de eso antes de publicar hay reglas que seguir, pasar por Presentaciones por favor.
Mismo tema deberías seguirlo:

Buenas, al parecer no estas consultando la base desde el RecordSet de la DI API, porque si estás en HANA no debería aparecer el mensaje de SQL Server.

Además veo que el mensaje dice que el connection string no es valido, es decir estas usando un ODBC u OLEDB para consultar la base de datos, y claro, en ese caso los strings de conexión no tienen la misma estructura.

Atte

1 me gusta

Hola, es lo que se me hace raro, mi código está así:
oCompany = new SAPbobsCOM.Company();
oCompany.Server = “NDB@sap-hana-s2v2:30013”;
oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_HANADB;
oCompany.DbUserName = “Usuario de hana”;
oCompany.DbPassword = “3Passw0rd de hana”;
oCompany.CompanyDB = “base de datos”;
oCompany.UserName = “usuario sap”;
oCompany.Password = “contraseña sap”;
y la consulta la hago de la siguiente manera:
SqlConnection conn;
SqlCommand cmd;
DataTable dt = new DataTable();
SqlDataAdapter sda;

        conn = new SqlConnection(_SQLClientConnectionSAP);
        conn.Open();

        string query = "select \"CardCode\",\"CardName\",\"Password\",\"validFor\" from OCRD " +
                        "where \"CardType\"='S' and \"validFor\"='Y' and \"CardCode\"='" + CardCode + "' and \"Password\"='" + Password + "'";

        cmd = new SqlCommand(query, conn);

        sda = new SqlDataAdapter(cmd);
        sda.Fill(dt);

        cmd.Connection.Close();
        conn.Close();

La cadena de conexión queda dela siguiente manera:
_SQLClientConnectionSAP = “Data Source=NDB@sap-hana-s2v2:30013;Offline=False;Initial Catalog= Base ;User ID=usuario base ;Password=pass base”;
Estoy empezando a trabajar con hana y es un ambiente nuevo, si entendí tu comentario de hace rato necesito cambiar la conexión de sql a hana, pero no se cómo hacerlo. Agradezco de tu ayuda.

Por lo que veo, el string está hecho para SQL Sever, según la documentacion de SAP HANA el string es otro.

SERVERNODE=<Server>:<PORT>;Driver=HDBODBC;UID=<USUARIO>;PWD=<PASS>

Puedes consultar la documentación oficial de la pagina de sap hana para más ejemplos

Atte

1 me gusta

Hola, ya encontré, y tenías razón la cadena de conexión es como la pones y para hacer la consulta es con
var oRecSet = (Recordset)oCompany.GetBusinessObject(BoObjectTypes.BoRecordset);
try
{
oRecSet.DoQuery(query);
}
catch (Exception)
{
//Posible dato vacio en el query
}
finally

De antemano, muchas gracias.