MSDataShape rebelde
Publicado por breggo (25 intervenciones) el 19/11/2005 16:35:49
Hola.
Quisiera plantearos una consulta. Estoy utilizando una consulta de tipo Shape en un proyecto en VB6. Lo que ocurre es que funciona correctamente en mi PC de la oficina y en el del trabajo, pero tengo un portátil donde no funciona. En concreto me da un mensaje de error indicándome que no puedo utilizar en la cláusula RELATE nombres de columnas cuya longitud no está definida o se desconoce. Os adjunto el código a ver si se os ocurre algo.
With cnnBDShape
.ConnectionString = "Provider=MSDataShape.1;" & _
"Extended Properties=" & _
Chr(34) & "DSN=MS Access Database;DBQ=" & App.Path & _
"\miBD.mdb;DefaultDir=" & _
App.Path & ";DriverId=281;FIL=MS Access;" & _
"MaxBufferSize=2048;PageTimeout=5;UID=admin;" & _
Chr(34) & ";Persist Security Info=True;" & _
"Data Provider=MSDASQL.1"
'Tipo de cursor
.CursorLocation = adUseClient
.Mode = adModeReadWrite
.Open
End With
...
Set rs = New ADODB.Recordset
sSqlShape = "SHAPE { SELECT gcCpr_producto as Producto, [gcCpr_producto]+[gcCpr_caract]+[gcCpr_condiciones] + Format([gcCpr_clave],'0000') AS Cadena , gcCpr_caract as Caracteristicas, gcCpr_clave as Clave, '', '', gcCpr_condiciones as Condiciones" _
& " from ClientesPreciosProducto where gcCpr_idCliente = 3 GROUP BY [gcCpr_producto]+[gcCpr_caract]+[gcCpr_condiciones] + Format([gcCpr_clave],'0000') , gcCpr_producto , gcCpr_caract , gcCpr_clave, gcCpr_condiciones } " _
& " APPEND ({ SELECT [gcCpr_producto]+[gcCpr_caract]+[gcCpr_condiciones] + Format([gcCpr_clave],'0000') AS Cadena , format(gcCpr_fecha1, 'DD/MM/YYYY'), gcCpr_precio1, gcCpr_producto, gcCpr_linea from ClientesPreciosProducto WHERE gcCpr_idCliente = 3}" _
& " RELATE 'Cadena' TO 'Cadena' )"
rs.Open sSqlShape, cnnBDShape, adOpenStatic, adLockReadOnly, adCmdText
El error me da en el open del recordset (rs.open...).
Cualquier sugerencia será bien recibida.
Un saludo.
Breggo.
Quisiera plantearos una consulta. Estoy utilizando una consulta de tipo Shape en un proyecto en VB6. Lo que ocurre es que funciona correctamente en mi PC de la oficina y en el del trabajo, pero tengo un portátil donde no funciona. En concreto me da un mensaje de error indicándome que no puedo utilizar en la cláusula RELATE nombres de columnas cuya longitud no está definida o se desconoce. Os adjunto el código a ver si se os ocurre algo.
With cnnBDShape
.ConnectionString = "Provider=MSDataShape.1;" & _
"Extended Properties=" & _
Chr(34) & "DSN=MS Access Database;DBQ=" & App.Path & _
"\miBD.mdb;DefaultDir=" & _
App.Path & ";DriverId=281;FIL=MS Access;" & _
"MaxBufferSize=2048;PageTimeout=5;UID=admin;" & _
Chr(34) & ";Persist Security Info=True;" & _
"Data Provider=MSDASQL.1"
'Tipo de cursor
.CursorLocation = adUseClient
.Mode = adModeReadWrite
.Open
End With
...
Set rs = New ADODB.Recordset
sSqlShape = "SHAPE { SELECT gcCpr_producto as Producto, [gcCpr_producto]+[gcCpr_caract]+[gcCpr_condiciones] + Format([gcCpr_clave],'0000') AS Cadena , gcCpr_caract as Caracteristicas, gcCpr_clave as Clave, '', '', gcCpr_condiciones as Condiciones" _
& " from ClientesPreciosProducto where gcCpr_idCliente = 3 GROUP BY [gcCpr_producto]+[gcCpr_caract]+[gcCpr_condiciones] + Format([gcCpr_clave],'0000') , gcCpr_producto , gcCpr_caract , gcCpr_clave, gcCpr_condiciones } " _
& " APPEND ({ SELECT [gcCpr_producto]+[gcCpr_caract]+[gcCpr_condiciones] + Format([gcCpr_clave],'0000') AS Cadena , format(gcCpr_fecha1, 'DD/MM/YYYY'), gcCpr_precio1, gcCpr_producto, gcCpr_linea from ClientesPreciosProducto WHERE gcCpr_idCliente = 3}" _
& " RELATE 'Cadena' TO 'Cadena' )"
rs.Open sSqlShape, cnnBDShape, adOpenStatic, adLockReadOnly, adCmdText
El error me da en el open del recordset (rs.open...).
Cualquier sugerencia será bien recibida.
Un saludo.
Breggo.
Valora esta pregunta


0