Compatibilidad sql server visual fox pro

Pues me urge saber como podría insertar y actualizar una base de datos creada en sql server desde visual fox pro...
Si se puede hacer, con cuales comando podría crear la conexión a sql server..

2 Respuestas

Respuesta

Una alternativa es conectarte primeramente a la base de datos mediante esta consulta en el init de tu formulario..

PUBLIC cnRam
cnRam=SQLCONNECT('sisvent','sa','12345',.t.)

seguido en tu evento click de tu boton guardar le cargas esto

PRIVATE xv1,xv2,xv3,xv4,xv5
xv1=this.Parent.txtnombre.Value
xv2=this.Parent.txtruc.Value
xv3=this.Parent.txtci.Value
xv4=this.Parent.txttelefono.Value
xv5=this.Parent.txtdireccion.Value

xr=SQLEXEC(cnRam,'insert into cliente(nombre_razon_social,ruc,ci,telefono,direccion) values(?xv1,?xv2,?xv3,?xv4,?xv5)')
IF xr<0
=MESSAGEBOX('no se posible...',16,'Error:')
ELSE
=MESSAGEBOX('Cliente Registrado !',70,'Mensaje:')
=MESSAGEBOX("Cliente Registrado correctamente.",64+0,"Información")
*!* *Actualizar Grid*
*!* PUBLIC cnRam
*!* cnRam=SQLCONNECT('sisvent','sa','12345',.t.)
*!* sqlconsulta=("select * from usuarios where iduser > 0" )
*!* SQLEXEC(cnRam ,sqlconsulta,'cu')
*!* *thisform.grdGusuarios.RecordSource='cu'
*!* thisform.grid1.RecordSource='cu'

*Limpiar form

this.Parent.txtnombre.Value=''
this.Parent.txtci.Value=''
this.Parent.txtruc.Value=''
this.Parent.txttelefono.Value=''
this.Parent.txtdireccion.Value=''
ENDIF

PRIVATE xv1,xv2,xv3,xv4,xv5
xv1=this.Parent.txtnombre.Value
xv2=this.Parent.txtruc.Value
xv3=this.Parent.txtci.Value
xv4=this.Parent.txttelefono.Value
xv5=this.Parent.txtdireccion.Value

xr=SQLEXEC(cnRam,'insert into cliente(nombre_razon_social,ruc,ci,telefono,direccion) values(?xv1,?xv2,?xv3,?xv4,?xv5)')
IF xr<0
=MESSAGEBOX('no se posible...',16,'Error:')
ELSE
=MESSAGEBOX('Cliente Registrado !',70,'Mensaje:')
=MESSAGEBOX("Cliente Registrado correctamente.",64+0,"Información")

*Limpiar casillas del  form

this.Parent.txtnombre.Value=''
this.Parent.txtci.Value=''
this.Parent.txtruc.Value=''
this.Parent.txttelefono.Value=''
this.Parent.txtdireccion.Value=''
ENDIF

Eh copiado accidental mente 2 veces el código chaval.. ya te darás cuenta al copiar ..

Respuesta
1
Disculpa que te responda tarde tenia problemas con mi usuario primero tienes que realizar la conexión a través de ODBC o de las conexiones internas del VFP, segundo tienes que crear una Vista Remota, tienes que tomar en cuenta que cuando vallas a realizar la conexión a odbc la base de datos al abrirla en el proyecto tienes que abrirla con el comando al final de la sentencia con Shared, después tienes que verificar que la clave principal o el Field Keys se haga actualizable igual que la vista, los comando son los Siguientes DBSETPROP() para ser actualizable los datos de la llave principal, CURSORSETPROP() para abrir la vista remota en modo buffering ya sea en modo tabla o registro optimista... la información es algo larga si quieres mandame tu correo y te lo mando mejor...
Te remito un pequeño código para realizar las actualizaciones a través de código...
En el Procedimiento INIT del Form ejecuta las siguientes lineas
set talk off
set echo off
set bell off
Set Date To french
Set Dele On
Set Multilocks On &&Habilita el Buffer de memoria.
CURSORSETPROP("Buffering", Nº, "NombredeTabla o Vista")
OPEN DATABASE Path o Ruta Shared
DBSETPROP('visFamiliares','View','SendUpdates',.T.) Este comando tiene que colocarlo para hacer la vista Actualizable
Nº = Depende de el modo de cursor que desees en El Buffer en Memoria
3 = Modo Registro Optimista
5= Modo Tabla Optimista
Son los más utilizados
y para guardar tienes que realizar lo siguiente y depende de que modo lo hagas
Replace NombreVista o Tabla.Campo with Campo en el Form
tableupdate(.t.)
Recuerda que la base de Datos tiene que deshabilitar en el Menu Opciones la Opción de Abrir la Base de Datos en Modo Exclusivo o Programarlo en el Init del Form
Set Exclusive Off
Cualquier Cosa me Avisas este mi correo te habilite en el Messenger para cualquier duda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas