tengo una conexion ODBC desde mariaDB a SQLSERVER.
Al realizar una consulta where de este tipo:
SELECT * FROM `Pedidos` WHERE Número = "0001";
Me retorna el siguiente error:
#1296 - Got error 174 'Get result size: SQLExecDirect: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid column name 'Número'. (rc=-1)' from CONNECT
El problema que observo es que: AL hacer la consulta con con la columna Número con acento, ODBC lo envia asi:
Número
Esto solo ocurre con esta columna, las demas consultas por otras columnas no pasa lo mismo.
Datos extras:
La base de datos sql server tiene el siguiente intercalacion de charset:
SQL_Latin1_General_CP1_CI_AS
En maria DB en cambio, he probado cambiar tanto la DB, como las tablas y las columnas a:
latin1, utf8 en diferentes charset cada uno, pero aun asi, sigue enviando mal la columna numero.
¿Qué se podría hacer en este caso? alguno le ha pasado?
Datos adicionales: La consulta da error haciendo la consulta desde el phpmyadmin, incluso da el mismo error usando el terminal sql.
En laravel, que es donde tengo el sistema da el mismo error, pero en la respuesta, puedo observar que la consulta que hace en el mismo laravel no hay problema, pues en el error se ve bien la consulta con acento. El error lo da es el ODBC igual que las consultas que hago en phpmyadmin.
Y como ya he dicho, en laravel he probado varias charset.
latin1 utf8 utf8mb4
he probado diferentes variaciones unicode, general_ci, bin, spanish configurando tanto el texto en el codigo antes de enviar, la conexion hacia el mysql en el database.php de laravel y los charset en la base de datos, las tablas y las columnas.
He probado casi todo en cuanto a los charset, o por lo menos lo que conozco.
Adicional 1 Jul 2021
Código de conexión odbc:
CREATE TABLE Pedidos (
Número nvarchar(100) NOT NULL,
Cliente nvarchar(50) NOT NULL,
Referencia nvarchar(50) NOT NULL,
Cantidad int NULL,
Fecha datetime NULL,
Hora datetime NULL,
PVP real NULL,
Vendedor nvarchar(10) NULL,
Observaciones nvarchar(255) NULL,
Procesado nvarchar(1) NULL,
TipoPrecio tinyint NULL
)
engine=connect
table_type=ODBC
tabname='dbo.Pedidos'
connection='DSN=MSSQLServer;uid=nombre-db;pwd=xxxxxxxxx'
option_list ='Memory=2'
CHARSET=utf8 DATA_CHARSET=utf8;