Migrando de ubna base MariaDB a Otra
Posted: Mon Apr 10, 2023 5:55 pm
Hola Gente, un saludos para todos.
Tengo el siguiente problema:
tengo una base A con la tabla PACIENTES
y otra base B con una tabla PACIENTES
La base A tiene 95 mil registros, y estoy cargando en un array y luego lo migro a la base B, funciona genial, hasta la insercion del registro nro. 27876
y me parece que es por el siguiente problema, que no se como solucionarlo:
El campo apellido que tiene que migrar es: P'CONNOR
Tiene un apostrofe en el apellido, quizas eso es el problema
El error es este:
Error executing Query INSERT INTO
B.pacientes(Codigo,Apellido,Nombre,FechaNac,Activo)
VALUE('27876','P'CONNOR','MARIANA D.D.','1967/02/20',1): You
have an error in your SQL syntax; check the manual that corresponds
to your MariaDB server version for the right syntax to use near
'CONNOR','MARIANA D.D.','1967/02/20',1)' at line 1
la migracion la hago asi:
My_SQL_Connect()
My_SQL_Database_Connect( "A" )
oQuery:=oServer:QUERY("SELECT * FROM hiscli.pacientes")
IF oQuery:NetErr()
MsgInfo("MariaDB SQL SELECT error: " + oQuery:Error())
RELEASE WINDOW ALL
RETURN NIL
ENDIF
Fin := oQuery:LASTREC()
aDatos_origen := ARRAY(Fin,4)
FOR i:=1 TO Fin //27876
oRow := oQuery:GETROW(i)
aDatos_origen[1] := ALLTRIM(oRow:FIELDGET(1)) //Apellido
aDatos_origen[2] := ALLTRIM(oRow:FIELDGET(2)) //Nombre
Nac := oRow:FIELDGET(5) //FechaNac
aDatos_origen[3] := CTOD(RIGHT(Nac,4)+'/'+SUBSTR(Nac,4,2)+'/'+LEFT(NAC,2))
aDatos_origen[4] := oRow:FIELDGET(11) //CodUnico
oQuery:Skip(1)
NEXT
oQuery:Destroy()
My_SQL_Database_Connect( "B" )
FOR i:=1 TO Fin
cDatos1 := aDatos_origen[4]
cDatos2 := aDatos_origen[1]
cDatos3 := aDatos_origen[2]
cDatos4 := DTOC(aDatos_origen[3])
cQuery := "INSERT INTO consultorio.pacientes(Codigo,Apellido,Nombre,FechaNac,Activo) "+;
"VALUES ( '"+STR(cDatos1)+"','"+cDatos2+"','"+cDatos3+"','"+cDatos4+"',1)"
oQuery := oServer:Query( cQuery )
IF oServer:NetErr()
MsgInfo( "Error executing Query "+cQuery+": "+oServer:ERROR() )
EXIT
ENDIF
NEXT
oQuery:Destroy()
QUIT
RETURN NIL
**********
Tengo el siguiente problema:
tengo una base A con la tabla PACIENTES
y otra base B con una tabla PACIENTES
La base A tiene 95 mil registros, y estoy cargando en un array y luego lo migro a la base B, funciona genial, hasta la insercion del registro nro. 27876
y me parece que es por el siguiente problema, que no se como solucionarlo:
El campo apellido que tiene que migrar es: P'CONNOR
Tiene un apostrofe en el apellido, quizas eso es el problema
El error es este:
Error executing Query INSERT INTO
B.pacientes(Codigo,Apellido,Nombre,FechaNac,Activo)
VALUE('27876','P'CONNOR','MARIANA D.D.','1967/02/20',1): You
have an error in your SQL syntax; check the manual that corresponds
to your MariaDB server version for the right syntax to use near
'CONNOR','MARIANA D.D.','1967/02/20',1)' at line 1
la migracion la hago asi:
My_SQL_Connect()
My_SQL_Database_Connect( "A" )
oQuery:=oServer:QUERY("SELECT * FROM hiscli.pacientes")
IF oQuery:NetErr()
MsgInfo("MariaDB SQL SELECT error: " + oQuery:Error())
RELEASE WINDOW ALL
RETURN NIL
ENDIF
Fin := oQuery:LASTREC()
aDatos_origen := ARRAY(Fin,4)
FOR i:=1 TO Fin //27876
oRow := oQuery:GETROW(i)
aDatos_origen[1] := ALLTRIM(oRow:FIELDGET(1)) //Apellido
aDatos_origen[2] := ALLTRIM(oRow:FIELDGET(2)) //Nombre
Nac := oRow:FIELDGET(5) //FechaNac
aDatos_origen[3] := CTOD(RIGHT(Nac,4)+'/'+SUBSTR(Nac,4,2)+'/'+LEFT(NAC,2))
aDatos_origen[4] := oRow:FIELDGET(11) //CodUnico
oQuery:Skip(1)
NEXT
oQuery:Destroy()
My_SQL_Database_Connect( "B" )
FOR i:=1 TO Fin
cDatos1 := aDatos_origen[4]
cDatos2 := aDatos_origen[1]
cDatos3 := aDatos_origen[2]
cDatos4 := DTOC(aDatos_origen[3])
cQuery := "INSERT INTO consultorio.pacientes(Codigo,Apellido,Nombre,FechaNac,Activo) "+;
"VALUES ( '"+STR(cDatos1)+"','"+cDatos2+"','"+cDatos3+"','"+cDatos4+"',1)"
oQuery := oServer:Query( cQuery )
IF oServer:NetErr()
MsgInfo( "Error executing Query "+cQuery+": "+oServer:ERROR() )
EXIT
ENDIF
NEXT
oQuery:Destroy()
QUIT
RETURN NIL
**********