Hola Ricardo :
En lo personal utilizo el comando SQLEXEC de VFP. Primeramente debo realizar la conexion a la base de datos a traves de
SQLSTRINGCONNECT() y guardarla en una variable o una propiedad del formulario yo normalmente utilizo Thisform.conexion ejemplo :
Todo esto en el metodo LOAD
Connect_String = [Driver={SQL Server};Server=&_NOMBRE_SERVIDOR_SQL;UID=&NOMBRE_USUARIO_SQL;PWD=&CLAVE_ACCESO_SQL;Database=&NOMBRE_BASE_DATOS_SQL;]
thisform.conexion = SQLSTRINGCONNECT(Connect_String)
IF thisform.conexion < 0
thisform.numero_panel = 0
= MESSAGEBOX('No se pudo conectar al Servidor SQL', 16, 'Error de conexión SQL')
thisform.encabezado.boton_Volver.Click()
RETURN .f.
thisform.release()
Return
ELSE
*= MESSAGEBOX('Conexión Satisfactoria', 48, 'Conexión a SQL Server')
ENDIF
= SQLSETPROP(thisform.conexion, 'asynchronous', .F.)
= SQLSETPROP(thisform.conexion, 'DispWarnings', .t.)
= SQLSETPROP(thisform.conexion, 'BatchMode', .t.)
Una vez que tienes la conexion abierta
Si deseas eliminar uno o mas registros debes colocar una sentencia como la siguiente
cadena = [DELETE FROM mitabla WHERE empresa = '] + _EMPRESA + [' AND numero_operacion = '] + n_nro_operacion + [' ]
**************************Comandos SQLEXEC() ****************************
=SQLPREPARE(thisform.conexion, cadena, "resultado")
n_resp = SQLEXEC(thisform.conexion)
*************************************************************************
IF n_resp < 0
AERROR(laError)
MESSAGEBOX('ERROR AL REALIZAR LA OPERACION'+ CHR(13) + CHR(13) + ALLTRIM(LAERROR[3]),64,'OPeracion Anulada')
cadena = [ROLLBACK]
**************************Comandos SQLEXEC() ****************************
=SQLPREPARE(thisform.conexion, cadena, "resultado")
=SQLEXEC(thisform.conexion)
*************************************************************************
RETURN
ENDIF
No se si te paso. A mi me sucedio cuando comence a utilizar Bases de Datos Relacionales. En VFP (DBF) el comando DELETE (a secas) borra el registro donde te encuentras parado. En una base de datos relacional debes FILTRAR los registros a borrar con el WHERE como esta escrito arriba. Si colocas el comando sin el WHERE te borra la tabla completa.
Este ejemplo esta utilizado para SQL SERVER pero si te conectas a una base MySQL funciona exactamente igual.
Espero haber sido de ayuda.
Saludos Cordiales