Sql hanna con c#

Cuando lo corro en mi ambiente de hanna me dice:

Error al conectar o ejecutar la consulta, ERROR 42s02 base table or view not found 259 invalid table name could not find table / view oinv in schema system: line 1 col 15 at post 14

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;
using Microsoft.VisualBasic;
using System.Data.Odbc;
namespace WindowsFormsApp3
{
    public partial class Form1 : Form
    {
        private OdbcConnection connection;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string connectionString = "DRIVER={HDBODBC};SERVERNODE=hanadb:30013;DATABASE=SBO_MODELORD;UID=SYSTEM;PWD=7%CLvM7y!4!0;";
            connection = new OdbcConnection(connectionString);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                // Abrir la conexión
                connection.Open();

                // Crear la consulta SQL
                //string query = "SELECT T0.\"CardCode\", T0.\"CardName\" FROM \"OCRD\" T0 WHERE T0.\"CardCode\" = 'CL-001844'";
                //"SBO_MODELORD"."OCRD"
                string query = "SELECT * FROM OINV";


                // Crear el comando ODBC
                using (OdbcCommand command = new OdbcCommand(query, connection))
                {
                    // Ejecutar la consulta y obtener el lector de datos
                    using (OdbcDataReader reader = command.ExecuteReader())
                    {
                        // Verificar si hay resultados
                        if (reader.Read())
                        {
                            // Obtener el CardCode del primer resultado
                            string cardCode = reader["CardCode"].ToString();

                            // Mostrar el CardCode en un MessageBox
                            MessageBox.Show("CardCode: " + cardCode);
                        }
                        else
                        {
                            MessageBox.Show("No se encontraron resultados.");
                        }
                    }
                }
            }
            catch (OdbcException odbcEx)
            {
                MessageBox.Show("Error al conectar o ejecutar la consulta: " + odbcEx.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
            }
            finally
            {
                // Asegurarse de cerrar la conexión si está abierta
                if (connection != null && connection.State == System.Data.ConnectionState.Open)
                {
                    connection.Close();
                }
            }
        }
    }
    }

Utilice este query
SELECT CURRENT_SCHEMA FROM DUMMY y me dice que mi schema es SBO_MODELORD

de igual forma utilizo el query de muchas formas hasta con un
select "cardcode" from "SBO_MODELORD"."OINV"

Y hasta asi me da error alguna sugerencia?

El error que estás encontrando suele ser común cuando se trabaja con HANA y se refiere a la incapacidad del sistema para localizar la tabla o vista especificada en el esquema actual. En tu caso, parece que hay un problema de referencia con la tabla OINV en tu código C# utilizando ODBC para conectarse a SAP HANA.

Posibles causas y soluciones:

  1. Problema de esquema y mayúsculas:
    Asegúrate de que estás utilizando correctamente el nombre del esquema y el nombre de la tabla, teniendo en cuenta que en HANA, los nombres de tablas y columnas son sensibles a mayúsculas y minúsculas cuando están entre comillas dobles. Por ejemplo, si la tabla se llama OINV, debes utilizar "OINV" exactamente como está.

    Puedes intentar modificar tu consulta de la siguiente manera:

    string query = "SELECT * FROM \"SBO_MODELORD\".\"OINV\"";
    
  2. Verificación del esquema:
    Aunque ya has verificado que tu esquema es SBO_MODELORD, es posible que el problema esté en cómo estás haciendo la referencia a la tabla. Intenta correr una consulta simple directamente en HANA Studio o a través de otra herramienta de consulta HANA para asegurarte de que la tabla OINV existe en ese esquema y que puedes acceder a ella con la misma cuenta de usuario que estás utilizando en tu aplicación.

  3. Permisos de acceso:
    Verifica que el usuario SYSTEM tiene los permisos necesarios para acceder a la tabla OINV dentro del esquema SBO_MODELORD. El usuario SYSTEM normalmente tiene todos los permisos, pero si estás utilizando un usuario diferente o las políticas de seguridad son estrictas, esto podría ser una fuente del problema.

  4. Especificación del esquema en HANA:
    Si estás seguro de que la tabla OINV está en el esquema correcto, puedes intentar configurar el esquema en el mismo comando SQL para asegurarte de que está apuntando al esquema correcto:

    string query = "SELECT * FROM \"SBO_MODELORD\".\"OINV\"";
    

    También puedes establecer el esquema predeterminado al conectarte:

    connection.ChangeDatabase("SBO_MODELORD");
    
  5. Consultar las tablas disponibles:
    Puedes ejecutar una consulta para obtener una lista de tablas en el esquema SBO_MODELORD para asegurarte de que la tabla OINV está allí:

    SELECT TABLE_NAME FROM M_TABLES WHERE SCHEMA_NAME = 'SBO_MODELORD';
    

    Esto te ayudará a confirmar si la tabla OINV realmente existe en el esquema que estás intentando utilizar.

Sugerencia general:

Es importante que cuando realices este tipo de consultas directamente sobre la base de datos de SAP Business One, tomes las precauciones necesarias para evitar alteraciones en los datos críticos del sistema. Si decides modificar alguna consulta, asegúrate de realizar pruebas en un ambiente controlado antes de implementarlo en producción.

Resumen Consultoria-SAP: Para resolver el problema de referencia de tablas en SAP HANA al utilizar ODBC en SAP Business One, asegúrate de utilizar los nombres correctos de tablas y esquemas, respetando las mayúsculas y las comillas dobles, y verifica que el usuario tenga los permisos adecuados.

¡Estamos aquí para ayudarte!

Este tema se cerró automáticamente 7 días después de la última publicación. No se permiten nuevas respuestas.