No puedo leer varchar(max)

23/05/2008 - 17:08 por netzorro | Informe spam
Hola,
considerando el nuevo tipo varchar(max) he cambiado algunas columnas
anteriormente tipo text por varchar(max)
El problema es que utilizando el driver de odbc "SQL Native Client
2005.90.1399.00" odbc driver el valor de esa columna esta vacio.
Si cambio el driver por el viejo SQL Server 2000.85.117.00 funciona
perfectamente.

Alguien sabe porque? No quisiera volver mis aplicaciones a utilizar el
driver del 2000
He visto algunos reportes de esto buscando pero no encuentro ninguna
solucion

Gracias
Diego

Preguntas similare

Leer las respuestas

#1 Gux (MVP)
23/05/2008 - 17:37 | Informe spam
Use en el string de conexion: Provider=SQLNCLI y DataTypeCompatibility€.
Por ejemplo:

Dim con As New ADODB.Connection

con.ConnectionString = "Provider=SQLNCLI;" _
& "Server=(local);" _
& "Database=AdventureWorks;" _
& "Integrated Security=SSPI;" _
& "DataTypeCompatibility€;" _
& "MARS Connection=True;"
con.Open


Detalles del string de conexión, ver acá:

Using Connection String Keywords with SQL Native Client
http://technet.microsoft.com/en-us/...30822.aspx

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"netzorro" wrote:

Hola,
considerando el nuevo tipo varchar(max) he cambiado algunas columnas
anteriormente tipo text por varchar(max)
El problema es que utilizando el driver de odbc "SQL Native Client
2005.90.1399.00" odbc driver el valor de esa columna esta vacio.
Si cambio el driver por el viejo SQL Server 2000.85.117.00 funciona
perfectamente.

Alguien sabe porque? No quisiera volver mis aplicaciones a utilizar el
driver del 2000
He visto algunos reportes de esto buscando pero no encuentro ninguna
solucion

Gracias
Diego



Respuesta Responder a este mensaje
#2 netzorro
23/05/2008 - 19:55 | Informe spam
Gracias por tu respuesta pero esta seria una solucion para ado, pero yo
estoy utilizando ODBC
Alguna solucion para ODBC?
Gracias


"Gux (MVP)" wrote in message
news:
Use en el string de conexion: Provider=SQLNCLI y DataTypeCompatibility€.
Por ejemplo:

Dim con As New ADODB.Connection

con.ConnectionString = "Provider=SQLNCLI;" _
& "Server=(local);" _
& "Database=AdventureWorks;" _
& "Integrated Security=SSPI;" _
& "DataTypeCompatibility€;" _
& "MARS Connection=True;"
con.Open


Detalles del string de conexión, ver acá:

Using Connection String Keywords with SQL Native Client
http://technet.microsoft.com/en-us/...30822.aspx

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"netzorro" wrote:

Hola,
considerando el nuevo tipo varchar(max) he cambiado algunas columnas
anteriormente tipo text por varchar(max)
El problema es que utilizando el driver de odbc "SQL Native Client
2005.90.1399.00" odbc driver el valor de esa columna esta vacio.
Si cambio el driver por el viejo SQL Server 2000.85.117.00 funciona
perfectamente.

Alguien sabe porque? No quisiera volver mis aplicaciones a utilizar el
driver del 2000
He visto algunos reportes de esto buscando pero no encuentro ninguna
solucion

Gracias
Diego



Respuesta Responder a este mensaje
#3 Gux (MVP)
23/05/2008 - 20:21 | Informe spam
Puede usted mostrar el código fuente de cómo está accesando a la columna de
tipo VARCHAR(MAX) cuando le viene vacía de datos?

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"netzorro" wrote:

Gracias por tu respuesta pero esta seria una solucion para ado, pero yo
estoy utilizando ODBC
Alguna solucion para ODBC?
Gracias


"Gux (MVP)" wrote in message
news:
> Use en el string de conexion: Provider=SQLNCLI y DataTypeCompatibility€.
> Por ejemplo:
>
> Dim con As New ADODB.Connection
>
> con.ConnectionString = "Provider=SQLNCLI;" _
> & "Server=(local);" _
> & "Database=AdventureWorks;" _
> & "Integrated Security=SSPI;" _
> & "DataTypeCompatibility€;" _
> & "MARS Connection=True;"
> con.Open
>
>
> Detalles del string de conexión, ver acá:
>
> Using Connection String Keywords with SQL Native Client
> http://technet.microsoft.com/en-us/...30822.aspx
>
> Gustavo Larriera, Microsoft MVP
> https://mvp.support.microsoft.com/p...o.larriera
> Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
>
>
>
> "netzorro" wrote:
>
>> Hola,
>> considerando el nuevo tipo varchar(max) he cambiado algunas columnas
>> anteriormente tipo text por varchar(max)
>> El problema es que utilizando el driver de odbc "SQL Native Client
>> 2005.90.1399.00" odbc driver el valor de esa columna esta vacio.
>> Si cambio el driver por el viejo SQL Server 2000.85.117.00 funciona
>> perfectamente.
>>
>> Alguien sabe porque? No quisiera volver mis aplicaciones a utilizar el
>> driver del 2000
>> He visto algunos reportes de esto buscando pero no encuentro ninguna
>> solucion
>>
>> Gracias
>> Diego
>>
>>
>>



Respuesta Responder a este mensaje
#4 netzorro
23/05/2008 - 23:33 | Informe spam
El codigo es complicado pero se resume a esto:

oRecordset = getRecordset("select myText from myTable");

while (!oRecordset->IsEOF())
{
oRecordset->GetFieldValue(1,oData);
if (oData.m_dwType == DBVT_ASTRING)
{
sAux = *oData.m_pstringA;
}
oRecordset->MoveNext();
}





*oData.m_pstringA apunta a un string vacio

Este mismo codigo funciona perfecto si myText is varchar(n) o es Text, pero
deja de funcionar si es varchar(max)

Gracias

Diego


"Gux (MVP)" wrote in message
news:
Puede usted mostrar el código fuente de cómo está accesando a la columna
de
tipo VARCHAR(MAX) cuando le viene vacía de datos?

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"netzorro" wrote:

Gracias por tu respuesta pero esta seria una solucion para ado, pero yo
estoy utilizando ODBC
Alguna solucion para ODBC?
Gracias


"Gux (MVP)" wrote in message
news:
> Use en el string de conexion: Provider=SQLNCLI y
> DataTypeCompatibility€.
> Por ejemplo:
>
> Dim con As New ADODB.Connection
>
> con.ConnectionString = "Provider=SQLNCLI;" _
> & "Server=(local);" _
> & "Database=AdventureWorks;" _
> & "Integrated Security=SSPI;" _
> & "DataTypeCompatibility€;" _
> & "MARS Connection=True;"
> con.Open
>
>
> Detalles del string de conexión, ver acá:
>
> Using Connection String Keywords with SQL Native Client
> http://technet.microsoft.com/en-us/...30822.aspx
>
> Gustavo Larriera, Microsoft MVP
> https://mvp.support.microsoft.com/p...o.larriera
> Este mensaje se proporciona tal como es, sin garantías de ninguna
> clase.
>
>
>
> "netzorro" wrote:
>
>> Hola,
>> considerando el nuevo tipo varchar(max) he cambiado algunas columnas
>> anteriormente tipo text por varchar(max)
>> El problema es que utilizando el driver de odbc "SQL Native Client
>> 2005.90.1399.00" odbc driver el valor de esa columna esta vacio.
>> Si cambio el driver por el viejo SQL Server 2000.85.117.00 funciona
>> perfectamente.
>>
>> Alguien sabe porque? No quisiera volver mis aplicaciones a utilizar el
>> driver del 2000
>> He visto algunos reportes de esto buscando pero no encuentro ninguna
>> solucion
>>
>> Gracias
>> Diego
>>
>>
>>



Respuesta Responder a este mensaje
#5 Gux (MVP)
24/05/2008 - 03:00 | Informe spam
Gracias por mostrar el código. Entiendo que usted está usando clases ODBC
MFC, y que oRecordset es de clase CRecordset. Intente estoy diganos si
funcionó:

. . .
CString *sAux;
. . .
if (oData.m_dwType == DBVT_STRING)
{
sAux = *oData.m_pstring;
}

Fuera de eso no se me ocurre otra cosa en este momento, mañana será otro día
:-)

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"netzorro" wrote:

El codigo es complicado pero se resume a esto:

oRecordset = getRecordset("select myText from myTable");

while (!oRecordset->IsEOF())
{
oRecordset->GetFieldValue(1,oData);
if (oData.m_dwType == DBVT_ASTRING)
{
sAux = *oData.m_pstringA;
}
oRecordset->MoveNext();
}





*oData.m_pstringA apunta a un string vacio

Este mismo codigo funciona perfecto si myText is varchar(n) o es Text, pero
deja de funcionar si es varchar(max)

Gracias

Diego


"Gux (MVP)" wrote in message
news:
> Puede usted mostrar el código fuente de cómo está accesando a la columna
> de
> tipo VARCHAR(MAX) cuando le viene vacía de datos?
>
> Gustavo Larriera, Microsoft MVP
> https://mvp.support.microsoft.com/p...o.larriera
> Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
>
>
>
> "netzorro" wrote:
>
>> Gracias por tu respuesta pero esta seria una solucion para ado, pero yo
>> estoy utilizando ODBC
>> Alguna solucion para ODBC?
>> Gracias
>>
>>
>> "Gux (MVP)" wrote in message
>> news:
>> > Use en el string de conexion: Provider=SQLNCLI y
>> > DataTypeCompatibility€.
>> > Por ejemplo:
>> >
>> > Dim con As New ADODB.Connection
>> >
>> > con.ConnectionString = "Provider=SQLNCLI;" _
>> > & "Server=(local);" _
>> > & "Database=AdventureWorks;" _
>> > & "Integrated Security=SSPI;" _
>> > & "DataTypeCompatibility€;" _
>> > & "MARS Connection=True;"
>> > con.Open
>> >
>> >
>> > Detalles del string de conexión, ver acá:
>> >
>> > Using Connection String Keywords with SQL Native Client
>> > http://technet.microsoft.com/en-us/...30822.aspx
>> >
>> > Gustavo Larriera, Microsoft MVP
>> > https://mvp.support.microsoft.com/p...o.larriera
>> > Este mensaje se proporciona tal como es, sin garantías de ninguna
>> > clase.
>> >
>> >
>> >
>> > "netzorro" wrote:
>> >
>> >> Hola,
>> >> considerando el nuevo tipo varchar(max) he cambiado algunas columnas
>> >> anteriormente tipo text por varchar(max)
>> >> El problema es que utilizando el driver de odbc "SQL Native Client
>> >> 2005.90.1399.00" odbc driver el valor de esa columna esta vacio.
>> >> Si cambio el driver por el viejo SQL Server 2000.85.117.00 funciona
>> >> perfectamente.
>> >>
>> >> Alguien sabe porque? No quisiera volver mis aplicaciones a utilizar el
>> >> driver del 2000
>> >> He visto algunos reportes de esto buscando pero no encuentro ninguna
>> >> solucion
>> >>
>> >> Gracias
>> >> Diego
>> >>
>> >>
>> >>
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida