Consulta parametrizada en C# con SYBASE

21/04/2006 - 10:54 por Rubén | Informe spam
Hola,

estaría muy agradecido que me puediesen ayudar.

Tengo que tratar con una base de datos Sybase. Necesito realizar una
consulta parametrizada y no sé cómo identificar el parámetro dentro de la
cadena de consulta, es decir, lo que hago es:

OleDbConnection con = new OleDbConnection(miCadenaDeConexión);
con.Open();

string consulta = "SELECT FECHA, ID,... FROM MI_TABLA
WHERE FECHA BETWEEN '2006/04/01' AND '2006/04/10'
AND ID = parámetro";

OleDbDataReader dr;
OleDbCommand cmd = new OleDbCommand(consulta, con);
cmd.CommandTimeout = 3600;
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(new OleDbParameter("parámetro", OleDbType.VarChar));
cmd.Parameters["parámetro"].Value = unaVariableTipoString;
cmd.Parameters["parámetro"].Direction = ParameterDirection.Input;
dr = cmd.ExecuteReader();

Sé que en Oracle los parámetros se identifican con dos puntos, es decir
:parámetro, pero aquí no me funciona.

Gracias por su atención,

Rubén.
 

Leer las respuestas

#1 Rubén
21/04/2006 - 11:15 | Informe spam
Bueno, ya lo he resuelto.

La solución para quien le interese es substituir el parámetro por un ?, así
la consulta quedaría:

string consulta = "SELECT FECHA, ID,... FROM MI_TABLA
WHERE FECHA BETWEEN '2006/04/01' AND '2006/04/10'
AND ID = ?";

Incluso para las fechas también valdría, eso sí, especificando como tipo de
parámetro que se trata de una fecha:

string consulta = "SELECT FECHA, ID,... FROM MI_TABLA
WHERE FECHA BETWEEN ? AND ?
AND ID = ?";




"Rubén" wrote:

Hola,

estaría muy agradecido que me puediesen ayudar.

Tengo que tratar con una base de datos Sybase. Necesito realizar una
consulta parametrizada y no sé cómo identificar el parámetro dentro de la
cadena de consulta, es decir, lo que hago es:

OleDbConnection con = new OleDbConnection(miCadenaDeConexión);
con.Open();

string consulta = "SELECT FECHA, ID,... FROM MI_TABLA
WHERE FECHA BETWEEN '2006/04/01' AND '2006/04/10'
AND ID = parámetro";

OleDbDataReader dr;
OleDbCommand cmd = new OleDbCommand(consulta, con);
cmd.CommandTimeout = 3600;
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(new OleDbParameter("parámetro", OleDbType.VarChar));
cmd.Parameters["parámetro"].Value = unaVariableTipoString;
cmd.Parameters["parámetro"].Direction = ParameterDirection.Input;
dr = cmd.ExecuteReader();

Sé que en Oracle los parámetros se identifican con dos puntos, es decir
:parámetro, pero aquí no me funciona.

Gracias por su atención,

Rubén.

Preguntas similares