QUE SIGNIFICA ESTE ERROR
- Ramon Paredes
- Posts: 215
- Joined: Fri Feb 02, 2007 3:38 pm
- Location: Managua, Nicaragua
QUE SIGNIFICA ESTE ERROR
Hola Amigos del Foro,
Estoy tratando con un Programa de ALtas, Bajas y Cambios con Ado y Mysql, tengo un Browse con los respectivos botones de las acciones , las altas no hay problemas , las bajas no hay problemas, pero cuando se trata de editar o modificar un registro ahi esta el problema me lanza un mensaje de error :
DISP_E_MEMBERNOTFOUND:UPDATE(0)
No se que significa, revise mis estructuras de datos y todo bien, son 6 campos tipo char probe a cambiarlos a varchar pero da el mismo error lo raro es que solo cuando modifico.
Saludes y gracias de Antemano
Desde Managua, Nicaragua
Ramon Paredes
Estoy tratando con un Programa de ALtas, Bajas y Cambios con Ado y Mysql, tengo un Browse con los respectivos botones de las acciones , las altas no hay problemas , las bajas no hay problemas, pero cuando se trata de editar o modificar un registro ahi esta el problema me lanza un mensaje de error :
DISP_E_MEMBERNOTFOUND:UPDATE(0)
No se que significa, revise mis estructuras de datos y todo bien, son 6 campos tipo char probe a cambiarlos a varchar pero da el mismo error lo raro es que solo cuando modifico.
Saludes y gracias de Antemano
Desde Managua, Nicaragua
Ramon Paredes
... Desde la Tierra de lagos y Volcanes......
- Ramon Paredes
- Posts: 215
- Joined: Fri Feb 02, 2007 3:38 pm
- Location: Managua, Nicaragua
A nadie se le ha presentado este error S.O.S
Hola amigos del foro,
Sera que a nadie se le ha presentado este error ?
Agradezco cualquier orientacion al respecto
Saludes desde Managua, NIcaragua
Ramon Paredes
Sera que a nadie se le ha presentado este error ?
Agradezco cualquier orientacion al respecto
Saludes desde Managua, NIcaragua
Ramon Paredes
... Desde la Tierra de lagos y Volcanes......
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- Ramon Paredes
- Posts: 215
- Joined: Fri Feb 02, 2007 3:38 pm
- Location: Managua, Nicaragua
Gracias por Responder Antonio y Sjingo
Sjingo :
Te muestro el codigo , como comente las altas, bien todo, las bajas, bien todo pero las modificaciones o ediciones ahi salta el error que mencione en mi primer post,
hasta puse un msgalert para que me mostrara en ese momento _ los valores y la longitudes y todo esta ok
agardezco cualquier sugerencia al respecto como ven es ado puro no uso adordd
//=====================
FUNCTION PRUEBA()
//=====================
Local oDlg,oBrw,SiNuevo := .f.
LOCAL oConexionAdo := TOLEAUTO():New("adodb.connection")
PRIVATE oRecordset := TOLEAUTO():New("adodb.recordset")
oConexionAdo:Open("DRIVER={MySQL ODBC 3.51 Driver}; SERVER=127.0.0.1 ; DATABASE=Personal1; UID=root; PWD=1234")
oRecordSet:LockType := adLockOptimistic
oRecordSet:CursorType := adOpenKeyset
oRecordSet:CursorLocation := adUseClient
oRecordSet:ActiveConnection(oConexionAdo)
oRecordSet:Source := "Select * from maestro"
oRecordSet:Open()
aCifra = oRecordset:Recordcount()
DEFINE DIALOG oDlg RESOURCE 78
REDEFINE LISTBOX oBrw FIELDS oRecordSet:Fields("Numero"):value,;
oRecordSet:Fields("Nombres"):value,;
oRecordSet:Fields("Apellido1"):value,;
oRecordSet:Fields("Apellido2"):value,;
oRecordSet:Fields("Tipo"):value,;
oRecordSet:Fields("Tip_Emp"):value;
HEADERS "Numero","Nombres","Apellido1","Apellido2","Tipo","Tip_Emp" ;
FIELDSIZES 80,150,120,120,60,100 ;
COLOR CLR_RED,CLR_WHITE ;
ID 108 OF oDlg
oBrw:aJustify ={.F.,.F.,.f.,.f.,.f.,.f.}
oBrw:bLogicLen = { || oRecordSet:RecordCount }
oBrw:bGoTop = { || oRecordSet:MoveFirst() }
oBrw:bGoBottom = { || oRecordSet:MoveLast() }
oBrw:bSkip = { | nSkip | Skipper( oRecordSet, nSkip ) }
oBrw:cAlias = "ARRAY"
REDEFINE BUTTON ID 102 of oDlg ACTION( AGREGO( .t., oBrw ) )
REDEFINE BUTTON ID 103 of oDlg ACTION( AGREGO( .f., oBrw ) )
REDEFINE BUTTON ID 104 of oDlg ACTION( BORRO( oBrw ) )
REDEFINE BUTTON ID 106 of oDlg ACTION( BUSCO() )
REDEFINE BUTTON ID 105 of oDlg ACTION( oDlg:End() )
ACTIVATE DIALOG oDlg CENTERED
oRecordSet:Close()
oConexionAdo:Close()
RETURN (.T.)
// oWndBrw:SetControl(oBrw)
STATIC FUNCTION SKIPPER( oRs, nSkip )
LOCAL nRec := oRs:AbsolutePosition
oRs:Move( nSkip )
IF oRs:EOF; oRs:MoveLast(); ENDIF
IF oRs:BOF; oRs:MoveFirst(); ENDIF
RETURN oRs:AbsolutePosition - nRec
Static Function RecordSetSkip(nSkip)
LOCAL nRec := oRecordSet:AbsolutePosition
oRecordSet:Move( nSkip )
IF oRecordSet:EOF; oRecordSet:MoveLast(); ENDIF
IF oRecordSet:BOF; oRecordSet:MoveFirst(); ENDIF
Return (oRecordSet:AbsolutePosition - nRec)
//========================================
STATIC FUNCTION AGREGO( Sinuevo, oBrw )
//========================================
Public oDlg2,mNumero,mNomb,mAp1,mAp2,mTipo,mDtipo,oNumero,oNomb,oAp1,oAp2,oTipo,oDtipo
if sinuevo = .t.
mNumero = space(5)
mNomb = space(25)
mAp1 = space(15)
mAp2 = space(12)
mTipo = space(1)
mDtipo = space(10)
else
mNumero = oRecordSet:Fields("Numero"):value
mNomb = oRecordSet:Fields("Nombres"):value
mAp1 = oRecordSet:Fields("Apellido1"):value
mAp2 = oRecordSet:Fields("Apellido2"):value
mTipo = oRecordSet:Fields("Tipo"):value
mDtipo = oRecordSet:Fields("Tip_Emp"):value
endif
DEFINE DIALOG oDlg2 RESOURCE 19
REDEFINE GET oNumero Var mNumero ID 101 of oDlg2
REDEFINE GET oNomb Var mNOmb ID 102 of oDlg2
REDEFINE GET oAp1 Var mAp1 ID 103 of oDlg2
REDEFINE GET oAp2 Var mAp2 ID 104 of oDlg2
REDEFINE GET oTipo Var mTipo ID 105 of oDlg2
REDEFINE GET oDtipo Var mDtipo ID 106 of oDlg2
REDEFINE BUTTON ID 107 of oDlg2 ACTION( GRABO1( SiNuevo, oBrw ),oDlg2:End() )
REDEFINE BUTTON ID 108 of oDlg2 ACTION( oDlg2:End(), oDlg2:End() )
ACTIVATE DIALOG oDlg2 CENTERED
RETURN
//=======================================
STATIC FUNCTION GRABO1( Sinuevo,oBrw)
//=======================================
IF SiNuevo = .t.
msgalert("aqui grabo")
oRecordSet:Addnew()
oRecordSet:Fields("Numero"):value := mNumero
oRecordSet:Fields("Nombres"):value := mNomb
oRecordSet:Fields("Apellido1"):value := mAp1
oRecordSet:Fields("Apellido2"):value := mAp2
oRecordSet:Fields("Tipo"):value := mTipo
oRecordSet:Fields("Tip_Emp"):value := mDtipo
oRecordSet:Update()
else
msgalert("aqui edito")
oRecordSet:Fields("Numero"):value := mNumero
oRecordSet:Fields("Nombres"):value := mNomb
oRecordSet:Fields("Apellido1"):value := mAp1
oRecordSet:Fields("Apellido2"):value := mAp2
oRecordSet:Fields("Tipo"):value := mTipo
oRecordSet:Fields("Tip_Emp"):value := mDtipo
MSGALERT("Campos a Mostrar : "+mNumero+str(len(mNumero))+" "+mNomb+str(len(mNomb))+" "+mAp1+str(len(mAP1))+" "+mAp2+str(len(mAp2))+" "+mTipo+str(len(mTipo))+" "+mDtipo+str(len(mDtipo)))
oRecordSet:Update()
endif
//oRecordSet:Update()
oRecordSet:Requery()
oBrw:Refresh()
MsgAlert("El RecordSet ha sido actualizado")
RETURN
//================================
STATIC FUNCTION BORRO( oBrw )
//================================
oRecordSet:Delete()
oRecordSet:Requery()
oBrw:Refresh()
RETURN
Te muestro el codigo , como comente las altas, bien todo, las bajas, bien todo pero las modificaciones o ediciones ahi salta el error que mencione en mi primer post,
hasta puse un msgalert para que me mostrara en ese momento _ los valores y la longitudes y todo esta ok
agardezco cualquier sugerencia al respecto como ven es ado puro no uso adordd
//=====================
FUNCTION PRUEBA()
//=====================
Local oDlg,oBrw,SiNuevo := .f.
LOCAL oConexionAdo := TOLEAUTO():New("adodb.connection")
PRIVATE oRecordset := TOLEAUTO():New("adodb.recordset")
oConexionAdo:Open("DRIVER={MySQL ODBC 3.51 Driver}; SERVER=127.0.0.1 ; DATABASE=Personal1; UID=root; PWD=1234")
oRecordSet:LockType := adLockOptimistic
oRecordSet:CursorType := adOpenKeyset
oRecordSet:CursorLocation := adUseClient
oRecordSet:ActiveConnection(oConexionAdo)
oRecordSet:Source := "Select * from maestro"
oRecordSet:Open()
aCifra = oRecordset:Recordcount()
DEFINE DIALOG oDlg RESOURCE 78
REDEFINE LISTBOX oBrw FIELDS oRecordSet:Fields("Numero"):value,;
oRecordSet:Fields("Nombres"):value,;
oRecordSet:Fields("Apellido1"):value,;
oRecordSet:Fields("Apellido2"):value,;
oRecordSet:Fields("Tipo"):value,;
oRecordSet:Fields("Tip_Emp"):value;
HEADERS "Numero","Nombres","Apellido1","Apellido2","Tipo","Tip_Emp" ;
FIELDSIZES 80,150,120,120,60,100 ;
COLOR CLR_RED,CLR_WHITE ;
ID 108 OF oDlg
oBrw:aJustify ={.F.,.F.,.f.,.f.,.f.,.f.}
oBrw:bLogicLen = { || oRecordSet:RecordCount }
oBrw:bGoTop = { || oRecordSet:MoveFirst() }
oBrw:bGoBottom = { || oRecordSet:MoveLast() }
oBrw:bSkip = { | nSkip | Skipper( oRecordSet, nSkip ) }
oBrw:cAlias = "ARRAY"
REDEFINE BUTTON ID 102 of oDlg ACTION( AGREGO( .t., oBrw ) )
REDEFINE BUTTON ID 103 of oDlg ACTION( AGREGO( .f., oBrw ) )
REDEFINE BUTTON ID 104 of oDlg ACTION( BORRO( oBrw ) )
REDEFINE BUTTON ID 106 of oDlg ACTION( BUSCO() )
REDEFINE BUTTON ID 105 of oDlg ACTION( oDlg:End() )
ACTIVATE DIALOG oDlg CENTERED
oRecordSet:Close()
oConexionAdo:Close()
RETURN (.T.)
// oWndBrw:SetControl(oBrw)
STATIC FUNCTION SKIPPER( oRs, nSkip )
LOCAL nRec := oRs:AbsolutePosition
oRs:Move( nSkip )
IF oRs:EOF; oRs:MoveLast(); ENDIF
IF oRs:BOF; oRs:MoveFirst(); ENDIF
RETURN oRs:AbsolutePosition - nRec
Static Function RecordSetSkip(nSkip)
LOCAL nRec := oRecordSet:AbsolutePosition
oRecordSet:Move( nSkip )
IF oRecordSet:EOF; oRecordSet:MoveLast(); ENDIF
IF oRecordSet:BOF; oRecordSet:MoveFirst(); ENDIF
Return (oRecordSet:AbsolutePosition - nRec)
//========================================
STATIC FUNCTION AGREGO( Sinuevo, oBrw )
//========================================
Public oDlg2,mNumero,mNomb,mAp1,mAp2,mTipo,mDtipo,oNumero,oNomb,oAp1,oAp2,oTipo,oDtipo
if sinuevo = .t.
mNumero = space(5)
mNomb = space(25)
mAp1 = space(15)
mAp2 = space(12)
mTipo = space(1)
mDtipo = space(10)
else
mNumero = oRecordSet:Fields("Numero"):value
mNomb = oRecordSet:Fields("Nombres"):value
mAp1 = oRecordSet:Fields("Apellido1"):value
mAp2 = oRecordSet:Fields("Apellido2"):value
mTipo = oRecordSet:Fields("Tipo"):value
mDtipo = oRecordSet:Fields("Tip_Emp"):value
endif
DEFINE DIALOG oDlg2 RESOURCE 19
REDEFINE GET oNumero Var mNumero ID 101 of oDlg2
REDEFINE GET oNomb Var mNOmb ID 102 of oDlg2
REDEFINE GET oAp1 Var mAp1 ID 103 of oDlg2
REDEFINE GET oAp2 Var mAp2 ID 104 of oDlg2
REDEFINE GET oTipo Var mTipo ID 105 of oDlg2
REDEFINE GET oDtipo Var mDtipo ID 106 of oDlg2
REDEFINE BUTTON ID 107 of oDlg2 ACTION( GRABO1( SiNuevo, oBrw ),oDlg2:End() )
REDEFINE BUTTON ID 108 of oDlg2 ACTION( oDlg2:End(), oDlg2:End() )
ACTIVATE DIALOG oDlg2 CENTERED
RETURN
//=======================================
STATIC FUNCTION GRABO1( Sinuevo,oBrw)
//=======================================
IF SiNuevo = .t.
msgalert("aqui grabo")
oRecordSet:Addnew()
oRecordSet:Fields("Numero"):value := mNumero
oRecordSet:Fields("Nombres"):value := mNomb
oRecordSet:Fields("Apellido1"):value := mAp1
oRecordSet:Fields("Apellido2"):value := mAp2
oRecordSet:Fields("Tipo"):value := mTipo
oRecordSet:Fields("Tip_Emp"):value := mDtipo
oRecordSet:Update()
else
msgalert("aqui edito")
oRecordSet:Fields("Numero"):value := mNumero
oRecordSet:Fields("Nombres"):value := mNomb
oRecordSet:Fields("Apellido1"):value := mAp1
oRecordSet:Fields("Apellido2"):value := mAp2
oRecordSet:Fields("Tipo"):value := mTipo
oRecordSet:Fields("Tip_Emp"):value := mDtipo
MSGALERT("Campos a Mostrar : "+mNumero+str(len(mNumero))+" "+mNomb+str(len(mNomb))+" "+mAp1+str(len(mAP1))+" "+mAp2+str(len(mAp2))+" "+mTipo+str(len(mTipo))+" "+mDtipo+str(len(mDtipo)))
oRecordSet:Update()
endif
//oRecordSet:Update()
oRecordSet:Requery()
oBrw:Refresh()
MsgAlert("El RecordSet ha sido actualizado")
RETURN
//================================
STATIC FUNCTION BORRO( oBrw )
//================================
oRecordSet:Delete()
oRecordSet:Requery()
oBrw:Refresh()
RETURN
... Desde la Tierra de lagos y Volcanes......
Hola Ramón
Aparentemente todo está muy bien, y así también lo hago yo, usando el recordset con las mismas características, y si funciona.
Es como si en ese momento se destruyera la variable del objeto recordset. Prueba quitando el msgalert() que está antes del Update().
A lo mejor alguien con más experiencia pueda encontrar el problema. Aunque otra posibilidad es usar el método execute() del objeto Conection.
Que no poder ayudar, espero que encuentres pronto la solucion.
Un Saludo
Marcelo Jingo
Aparentemente todo está muy bien, y así también lo hago yo, usando el recordset con las mismas características, y si funciona.
Es como si en ese momento se destruyera la variable del objeto recordset. Prueba quitando el msgalert() que está antes del Update().
A lo mejor alguien con más experiencia pueda encontrar el problema. Aunque otra posibilidad es usar el método execute() del objeto Conection.
Que no poder ayudar, espero que encuentres pronto la solucion.
Un Saludo
Marcelo Jingo
prueba tambien asi al guardar ,, sobre todo cuando es edicion,,
oRecordSet:Fields("Apellido1"):value := _scFill( mAp1, 15 )
oRecordSet:update()
function _scFill(c, nLon)
local nLen
local nSp
if valtype(c) <> "C"
c := ''
ENDIF
nLen := len(c)
nSp := len(space(nLon-nLen))
return ( c+space(nSp) )
saludos cordiales.
oRecordSet:Fields("Apellido1"):value := _scFill( mAp1, 15 )
oRecordSet:update()
function _scFill(c, nLon)
local nLen
local nSp
if valtype(c) <> "C"
c := ''
ENDIF
nLen := len(c)
nSp := len(space(nLon-nLen))
return ( c+space(nSp) )
saludos cordiales.
Cesar Cortes Cruz
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
- Manuel Valdenebro
- Posts: 706
- Joined: Thu Oct 06, 2005 9:57 pm
- Location: Málaga-España
En mi opinión, el objeto RecordSet es una matriz (array) y por tanto su manejo es muy parecido a la clase Database de FWH. Es una redundancia crear variables desde el RecordSet. He suprimido las funciones RecordSetSkip y Agrego1.- Uso oRs = oRecordSet.
Este sería el código:
REDEFINE BUTTON ID 102 of oDlg ACTION( AGREGO( .t., oBrw, oRs ) )
REDEFINE BUTTON ID 103 of oDlg ACTION( AGREGO( .f., oBrw, oRs ) )
//========================================
STATIC FUNCTION AGREGO( lAlta, oBrw, oRs )
//========================================
Local oDlg, lSalvar := .f.
IF lAlta = .t.
oRs:ADDNEW() // crea un nuevo registro en blanco
oRs:Fields("Numero"):value := SPACE(5)
oRs:Fields("Nombre"):value := SPACE(25)
oRs:Fields("Apellido1"):value := SPACE(15)
oRs:Fields("Apellido2"):value := SPACE(12)
oRs:Fields("Tipo"):value := SPACE(1)
oRs:Fields("Tip_Emp"):value := SPACE(10)
ENDI
DEFINE DIALOG oDlg RESOURCE 19
REDEFINE GET oRs:Fields("Numero"):value ID 101 of oDlg
REDEFINE GET oRs:Fields("Nombre"):value ID 102 of oDlg
REDEFINE GET oRs:Fields("Apellido1"):value ID 103 of oDlg
REDEFINE GET oRs:Fields("Apellido2"):value ID 104 of oDlg
REDEFINE GET oRs:Fields("Tipo"):value ID 105 of oDlg
REDEFINE GET oRs:Fields("Tip_Emp"):value ID 106 of oDlg
REDEFINE BUTTON ID 107 of oDlg ;
ACTION ( lSalvar := .T. , oDlg:End() )
REDEFINE BUTTON ID 108 of oDlg ;
ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTERED
IF lSalvar
oRs:UPDATE()
IF !empty(oRs:Filter)
oRs:REQUERY()
ENDI
ELSE
IF lAlta
oRs:DELETE()
oRs:REQUERY()
ENDI
ENDIF
oBrw:Refresh()
RETURN( NIL )
En las modificaciones no debe darte error. Si te da error en las altas, entonces es que la definición que estamos haciendo de _, no es la correcta.
Este sería el código:
REDEFINE BUTTON ID 102 of oDlg ACTION( AGREGO( .t., oBrw, oRs ) )
REDEFINE BUTTON ID 103 of oDlg ACTION( AGREGO( .f., oBrw, oRs ) )
//========================================
STATIC FUNCTION AGREGO( lAlta, oBrw, oRs )
//========================================
Local oDlg, lSalvar := .f.
IF lAlta = .t.
oRs:ADDNEW() // crea un nuevo registro en blanco
oRs:Fields("Numero"):value := SPACE(5)
oRs:Fields("Nombre"):value := SPACE(25)
oRs:Fields("Apellido1"):value := SPACE(15)
oRs:Fields("Apellido2"):value := SPACE(12)
oRs:Fields("Tipo"):value := SPACE(1)
oRs:Fields("Tip_Emp"):value := SPACE(10)
ENDI
DEFINE DIALOG oDlg RESOURCE 19
REDEFINE GET oRs:Fields("Numero"):value ID 101 of oDlg
REDEFINE GET oRs:Fields("Nombre"):value ID 102 of oDlg
REDEFINE GET oRs:Fields("Apellido1"):value ID 103 of oDlg
REDEFINE GET oRs:Fields("Apellido2"):value ID 104 of oDlg
REDEFINE GET oRs:Fields("Tipo"):value ID 105 of oDlg
REDEFINE GET oRs:Fields("Tip_Emp"):value ID 106 of oDlg
REDEFINE BUTTON ID 107 of oDlg ;
ACTION ( lSalvar := .T. , oDlg:End() )
REDEFINE BUTTON ID 108 of oDlg ;
ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTERED
IF lSalvar
oRs:UPDATE()
IF !empty(oRs:Filter)
oRs:REQUERY()
ENDI
ELSE
IF lAlta
oRs:DELETE()
oRs:REQUERY()
ENDI
ENDIF
oBrw:Refresh()
RETURN( NIL )
En las modificaciones no debe darte error. Si te da error en las altas, entonces es que la definición que estamos haciendo de _, no es la correcta.
Last edited by Manuel Valdenebro on Mon Feb 18, 2008 9:38 am, edited 1 time in total.
Un saludo
Manuel
Manuel
- Ramon Paredes
- Posts: 215
- Joined: Fri Feb 02, 2007 3:38 pm
- Location: Managua, Nicaragua
graciaspor sus aportes
Amigos del foro,
Agradezco sus sugerencias, aplicare a ver que sucede, apenas pruebe les aviso como me fue,
Desde Managua , Nicaragua
Ramon Paredes
Agradezco sus sugerencias, aplicare a ver que sucede, apenas pruebe les aviso como me fue,
Desde Managua , Nicaragua
Ramon Paredes
... Desde la Tierra de lagos y Volcanes......
- Ramon Paredes
- Posts: 215
- Joined: Fri Feb 02, 2007 3:38 pm
- Location: Managua, Nicaragua
solucionado
Amigos del foro, sjingo, sysctrl2,Manuel,
Gracias por Responder ya probe las opciones y me funciono al 100% con al solucion planteada por manuel y algo de la funcion de sysctrl2,
Agradezco los aportes de este muy productivo foro y de los amigos en disposicion de ayuda desinteresada,
Saludes desde Managua, Nicaragua
Ramon Paredes
Gracias por Responder ya probe las opciones y me funciono al 100% con al solucion planteada por manuel y algo de la funcion de sysctrl2,
Agradezco los aportes de este muy productivo foro y de los amigos en disposicion de ayuda desinteresada,
Saludes desde Managua, Nicaragua
Ramon Paredes
... Desde la Tierra de lagos y Volcanes......
-
- Posts: 988
- Joined: Thu Nov 24, 2005 3:01 pm
- Location: Madrid, España
Hola Cesar,
si mi memoria clippera no falla, la función _scFill ya existe en Clipper/Harbour y se llama PadR
PadR tiene un comportamiento interesante, y es que no solo añade espacios hasta la longitud dada, sino tambien trunca la longitud si la string original la supera.
Un saludo,
Carlos.
si mi memoria clippera no falla, la función _scFill ya existe en Clipper/Harbour y se llama PadR
PadR tiene un comportamiento interesante, y es que no solo añade espacios hasta la longitud dada, sino tambien trunca la longitud si la string original la supera.
Un saludo,
Carlos.
sysctrl2 wrote: function _scFill(c, nLon)
......
return ( c+space(nSp) )
saludos cordiales.
- goosfancito
- Posts: 1392
- Joined: Fri Oct 07, 2005 7:08 pm
Re: QUE SIGNIFICA ESTE ERROR
Dejen meterme en esta parte del codigo, quiero dar mi opinion personal y que me corrijan si esta mal.
Eso es muy facil al momento de codificar, me refiero a poner entre "" el nombre del campo, pero me ha pasado que si en un select tengo 2 o mas tablas y que el nombre de uno o varios de _ sean iguales entre las tablas...
A esto me refiero:
Supongamos esta estructura
Tremendo quilombo se te puede armar si no conoces el funcionamiento del recordset, ya que ese ID que estamos poniendo entre comillas dobles el recordset lo tomo de la segunda tabla (tabla2->ID) y no del tabla1... por lo que a mi entender sería mejor acostumbrarse al principio (o siempre) a utilizarlo de esta forma (ojo, es comentario nada mas)
Concuerdan con esto o por no saber manejar bien el recordset no estoy teniendo en cuenta algo?
Gracias.
Code: Select all
oRs:Fields("Numero"):value := SPACE(5)
A esto me refiero:
Supongamos esta estructura
Cuando hacemos el selectTABLA1 -> ID char de 5
TABLA1 -> NOMBRE char de 15
TABLA2 -> ID char de 5
TABLA2 -> PRECIO char de 3
Y luego utilizamos:SELECT * FROM TABLA1 A, TABLA2 B WHERE A.ID = B.ID
Code: Select all
oRs:Fields("ID"):value := SPACE(5)
Code: Select all
oRs:Fields(0):value := SPACE(5) // id tabla 1
oRs:Fields(1):value := SPACE(15) // nombre tabla 1
oRs:Fields(2):value := SPACE(5) // id tabla 2
oRs:Fields(3):value := SPACE(3) // precio tabla 2
Concuerdan con esto o por no saber manejar bien el recordset no estoy teniendo en cuenta algo?
Gracias.
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar