SQL Server
-
- Posts: 115
- Joined: Sat Mar 07, 2009 9:36 pm
- Location: Argentina
- Contact:
SQL Server
Buenos Días Foro: Por favor estoy desarrollando un sistema para muchas maquinas y el sistema anterior trabaja con bases de datos tipo mdb y necesitaría algun ejemplo si son tan amables de como crear, abrir, etc con bases tipo SQL SERVER. desde ya se agradece. Si alguien cree que debo abonar los ejemplos que me pase los precios a mi correo juanca252@yahoo.com.ar ... tengo fwh612 t bcc55.
Re: SQL Server
Puedes usar ado para comunicarte con el motor. Es fácil y práctico y no necesitas ninguna utilidad para trabajar con motores SQL.
Saludos
Saludos
-
- Posts: 440
- Joined: Fri Oct 07, 2005 2:17 pm
- Location: Lima - Peru
- Contact:
Re: SQL Server
Tambien tienes una opcion pago SQLRDD que comercializa la gente de xharbour.com tienen una opcion para Borland C 5.5, Yo la he robado, y funciona Ok, es mas en el foro Alfredo Artega hasta donde lei tiene sus sistemas trabajando con esta libreria y le va Ok.
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23, Fwh 20.04, MySQL 5.7 - 8.0, SQLLIB 1.9m, SQLRDD
Lima-Peru
xHb 1.23, Fwh 20.04, MySQL 5.7 - 8.0, SQLLIB 1.9m, SQLRDD
Re: SQL Server
como asi que la has robado?, esperamos todos sea un error de teclado y que te falto la "P" jajaja
Software especializado para oficinas contables con grandes volumenes de Informacion
Impresion de todos los formularios del Seniat, Dian
alex_patino74@hotmail.com
whatsapp 57+3214777217
Impresion de todos los formularios del Seniat, Dian
alex_patino74@hotmail.com
whatsapp 57+3214777217
-
- Posts: 440
- Joined: Fri Oct 07, 2005 2:17 pm
- Location: Lima - Peru
- Contact:
Re: SQL Server
Efectivamente se quedo la "P" atracada
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23, Fwh 20.04, MySQL 5.7 - 8.0, SQLLIB 1.9m, SQLRDD
Lima-Peru
xHb 1.23, Fwh 20.04, MySQL 5.7 - 8.0, SQLLIB 1.9m, SQLRDD
Re: SQL Server
Yo ya he hecho 2 aplicaciones usando solo harbour y fivewin (sin usar nada mas), debes conocer un poco de lenguaje sql.
yo trabajo mucho con stored procedures y funciones del lado del servidor.
por ejemplo debes olvidarte de manejar las tablas como si fueran un archivo dbf, la arquitectura es distinta aunque ya pasaste de dbf a mdb y ya debes saber usar querys.
primero descargas sqlexpress desde la pagina de microsoft y lo instalas.
segundo revisa si tienes instalado el sql native client, porque ese es el driver que uso en el ejemplo (si no lo instalo el sqlexpress lo puedes bajar desde la web de microsoft)
por ultimo usas estas 2 funciones en tus programas estas son las funciones que uso:
yo trabajo mucho con stored procedures y funciones del lado del servidor.
por ejemplo debes olvidarte de manejar las tablas como si fueran un archivo dbf, la arquitectura es distinta aunque ya pasaste de dbf a mdb y ya debes saber usar querys.
primero descargas sqlexpress desde la pagina de microsoft y lo instalas.
segundo revisa si tienes instalado el sql native client, porque ese es el driver que uso en el ejemplo (si no lo instalo el sqlexpress lo puedes bajar desde la web de microsoft)
por ultimo usas estas 2 funciones en tus programas estas son las funciones que uso:
Code: Select all
function main()
Local oAdo := ADOConnector()
Local oRs := ADORecordSet( oAdo, "SELECT * FROM itemfac")
xbrowse( oRs )
Return nil
Function ADOConnector()
Local cStr := "Driver={SQL Native Client};database=basededatos;server=localhost;user id=sa;password=123"
Local oReturn := tOleAuto():New("ADODB.connection")
oReturn:ConnectionSTring := cStr
try
oReturn:Open()
catch
oReturn := nil
msginfo( 'Error conectando con el servidor' )
end try
Return oReturn
Function ADORecordSet( oConnect, cSql )
Local oRs
Local cError := "No se ha podido crear el objeto RECORDSET !"
try
oRs := CreateObject("ADODB.RecordSet")
oRs:CursorLocation := 3
oRs:LockType := 4
oRs:ActiveConnection:= oConnect
oRs:source := cSql
oRs:Open()
catch oerror
//MsgStop( "Error construyendo recordset (ADO)" + CRLF + cSql, cError )
memoedit( cSql ) //uso memoedit para en caso de un error con la sintaxis copio y pego en el sql management studio del servidor y lo pruebo
end try
Return oRS
Re: SQL Server
Disculpa no habia visto que usa 6.12, esto no te va a servir, si quieres hacer algo moderno y profesional vas a tener rascarte el bolsillo, el salto es demasiado grande yo uso 11.01 y ya estoy en proceso de comprar la nueva version de fw (es la mejor inversion que he hecho).
-
- Posts: 132
- Joined: Sun Oct 23, 2005 4:09 pm
- Location: Pánuco,Ver. México
Re: SQL Server
Hola Simon!
Veo que usas ado para tus sistemas, estoy empezando a migrar mis aplicaciones a MySql, podrias proporcionarme un ejemplo basico de como le hiciste.
Saludos y gracias de antemano
Veo que usas ado para tus sistemas, estoy empezando a migrar mis aplicaciones a MySql, podrias proporcionarme un ejemplo basico de como le hiciste.
Saludos y gracias de antemano
Re: SQL Server
Amigo aqui un ejemplo con altas bajas y modificaciones con ADO, espero te sirva
Aquí el trozo de código que hace la conexión con la db
Code: Select all
**********************************************************
* PROGRAMA DE INVENTARIOS Y COSTOS DE PRODUCCION EN MYSQL*
* Modulo: Catálogo de Bodegas *
* Inicio: 06 de Abril de 2006 *
* Actual: 19 de Febrero de 2008 *
**********************************************************
#include "fivewin.ch"
#include "xbrowse.ch"
#include "report.ch"
#include "Ado.ch"
pBodegas()
********************
*Catalogo de Bodegas
********************
PROC pBodegas()
LOCAL aCol:={0,0},oCuadro
oLamcla:oC1vg1:=space(100)
oLamcla:vOrden:="b_nombre"
oLamcla:oTimpr:=1
oVar := "SELECT * from "+oLamcla:tBode+" ORDER BY "+alltrim(oLamcla:vOrden)
TRY
oLamcla:oRsBodega:=tOleAuto():New("ADODB.RecordSet")
CATCH oError
MsgStop( "No se ha podido crear el RECORDSET !","Error de Datos" )
END
oLamcla:oRsBodega:CursorLocation := adUseClient //adUseServer
oLamcla:oRsBodega:LockType := adLockOptimistic
oLamcla:oRsBodega:CursorType := adOpenKeyset
oLamcla:oRsBodega:Source := oVar
oLamcla:oRsBodega:ActiveConnection( oLamcla:oServer )
TRY
oLamcla:oRsBodega:Open()
CATCH oError
MsgStop( "No se ha podido ejecutar el comando !", "Error de Datos" )
END
DEFINE BRUSH oFondo FILE ".\res\res_403.BMP"
DEFINE DIALOG oCuadro RESOURCE "orMedida" ICON "#8001" TRANSPARENT BRUSH oFondo
REDEFINE BUTTONBMP Btn_Limp ID 4003 OF oCuadro BITMAP "Blimpi2" TOOLTIP oLamcla:mTfil ACTION pBusBod(oLamcla:oC1vg1:=space(100))
REDEFINE GET oC1og1 VAR oLamcla:oC1vg1 ID 4002 OF oCuadro UPDATE VALID(pBusBod(),.T.)
oLamcla:oBrwBode := TXBrowse():New( oCuadro )
oLamcla:oBrwBode:nMarqueeStyle := MARQSTYLE_HIGHLROW
oLamcla:oBrwBode:nColDividerStyle := LINESTYLE_RAISED
oLamcla:oBrwBode:nHeaderLines := 1
oLamcla:oBrwBode:lColDividerComplete := .t.
oLamcla:oBrwBode:lRecordSelector := .t.
oLamcla:oBrwBode:bClrSel := {|| { CLR_BLACK,oLamcla:cClr7 } }
oLamcla:oBrwBode:bClrStd := {|| IF( (oLamcla:oRsBodega:AbsolutePosition()%2)==0,{CLR_BLACK,oLamcla:cClr2},{CLR_BLACK,oLamcla:cClr1} ) }
oLamcla:oBrwBode:bClrSelFocus := {|| { CLR_WHITE,RGB(147,160,112) } }
aCol[ 1] := oLamcla:oBrwBode:AddCol()
aCol[ 1]:bStrData := { || If( oLamcla:oRsBodega:Eof, Space( nWidth ), cValtoChar( oLamcla:oRsBodega:Fields( "b_bodega" ):Value ) ) }
aCol[ 1]:cHeader := "Codigo"
aCol[ 1]:nHeadStrAlign := AL_LEFT
aCol[ 1]:nDataStrAlign := AL_LEFT
aCol[ 1]:nWidth := 80
aCol[ 2] := oLamcla:oBrwBode:AddCol()
aCol[ 2]:bStrData := { || If( oLamcla:oRsBodega:Eof, Space( nWidth ), cValtoChar( oLamcla:oRsBodega:Fields( "b_nombre" ):Value ) ) }
aCol[ 2]:cHeader := "Nombre"
aCol[ 2]:nHeadStrAlign := AL_LEFT
aCol[ 2]:nDataStrAlign := AL_LEFT
aCol[ 2]:nWidth := 225
oLamcla:oBrwBode:SetADO( oLamcla:oRsBodega )
oLamcla:oBrwBode:CreateFromResource( 102 )
oCuadro:cTitle := "Tabla de Bodegas"
oCuadro:bKeyDown := {|nKey|iif(nKey == 114,(oLamcla:vgraba:=.t.,oLamcla:autoriza(64)),(iif(nKey == 115,(oLamcla:vgraba:=.f.,oLamcla:autoriza(65)),(iif(nKey == 116,(oLamcla:autoriza(66)),(""))))))}
ACTIVATE DIALOG oCuadro NOWAIT On Init (Centra( oCuadro ),oCuadro:refresh(),BarraBod( oCuadro )) CENTERED
**************************************
*CREA LA BARRA DE HERRAMIENTAS BODEGAS
**************************************
FUNCTION BarraBod( oCuadro )
LOCAL oBar,oBtn,oCodigo,oNombre
MENU oOrdTal POPUP 2007
MENUITEM oCodigo PROMPT "Código" ACTION (oCodigo:SetCheck( .T. ),oNombre:SetCheck( .F. ),oLamcla:vOrden:="b_bodega",pOrdBod())
MENUITEM oNombre PROMPT "Nombre" ACTION (oCodigo:SetCheck( .F. ),oNombre:SetCheck( .T. ),oLamcla:vOrden:="b_nombre",pOrdBod())
ENDMENU
MENU oPopup POPUP 2007
MENUITEM "Configurar Impresora" ACTION PrinterSetup()
SEPARATOR
MENUITEM "Generar reporte a impresora" ACTION (oLamcla:oTimpr:=1,oLamcla:autoriza(67))
MENUITEM "Generar reporte a Excel" ACTION (oLamcla:oTimpr:=2,oLamcla:autoriza(67))
ENDMENU
oCodigo:SetCheck( .T. )
oNombre:SetCheck( .F. )
DEFINE BUTTONBAR oBar OF oCuadro SIZE 60,60 2007
DEFINE BUTTON OF oBar RESOURCE "#8016" PROMPT "Agregar" TOOLTIP "Agregar Registro - F3" ACTION (oLamcla:vgraba:=.t.,oLamcla:autoriza(64))
DEFINE BUTTON OF oBar RESOURCE "#8014" PROMPT "Modificar" TOOLTIP "Modificar Registro - F4" ACTION (oLamcla:vgraba:=.f.,oLamcla:autoriza(65))
DEFINE BUTTON OF oBar RESOURCE "#8017" PROMPT "Borrar" TOOLTIP "Borrar Registro - F5" ACTION oLamcla:autoriza(66)
DEFINE BUTTON OF oBar RESOURCE "#8012" PROMPT "Imprimir" TOOLTIP "Imprimir Listado" MENU oPopup ACTION (oLamcla:oTimpr:=1,oLamcla:autoriza(67))
DEFINE BUTTON OF oBar RESOURCE "#8019" PROMPT "Ordenar" TOOLTIP "Organizar Información" MENU oOrdTal ACTION (oCodigo:SetCheck( .F. ),oNombre:SetCheck( .T. ),oLamcla:vOrden:="b_nombre",pOrdBod())
DEFINE BUTTON OF oBar RESOURCE "#8013" PROMPT "Cerrar" TOOLTIP "Cerra Ventana" ACTION (oLamcla:oRsBodega:Close(),oCuadro:End())
oBar:GoTop()
RETURN .T.
****************
*Agregar Bodegas
****************
PROC pAgreBod()
oB2vg1:=space(3)
oB2vg2:=space(50)
oB2vg3:=space(50)
oB2vg4:=space(20)
DEFINE BRUSH oFondo FILE ".\res\res_403.BMP"
DEFINE DIALOG oCuadr1 RESOURCE "orBodeg1" ICON "#8001" TRANSPARENT BRUSH oFondo
REDEFINE BUTTONBMP Btn_Grab ID 11 OF oCuadr1 BITMAP "Bgrab" ACTION pValiBod()
REDEFINE BUTTONBMP Btn_Canc ID 10 OF oCuadr1 BITMAP "Bcanc" ACTION oCuadr1:End()
REDEFINE GET oB2og1 VAR oB2vg1 ID 4001 OF oCuadr1
REDEFINE GET oB2og2 VAR oB2vg2 ID 4003 OF oCuadr1
REDEFINE GET oB2og3 VAR oB2vg3 ID 4004 OF oCuadr1
REDEFINE GET oB2og4 VAR oB2vg4 ID 4006 OF oCuadr1
oCuadr1:cTitle := "Agregar Registro Bodegas"
ACTIVATE DIALOG oCuadr1 CENTERED
****************
*Validar Bodegas
****************
PROC pValiBod()
IF Empty(oB2vg1)
MsgStop("Digite Codigo Bodega",oLamcla:mImco)
oB2og1:setfocus()
ELSE
IF Empty(oB2vg2)
MsgStop("Digite Nombre Bodega",oLamcla:mImco)
oB2og2:setfocus()
ELSE
IF oLamcla:vgraba=.t.
oVar:="SELECT * from " + oLamcla:tBode +" WHERE b_bodega='"+alltrim(oB2vg1)+"'"
TRY
oConsBO := CreateObject("ADODB.Recordset")
CATCH oError
MsgStop(oLamcla:mErnt,oLamcla:mErco)
RETURN(.F.)
END
oConsBO:CursorLocation := adUseClient //adUseServer
oConsBO:LockType := adLockOptimistic
oConsBO:CursorType := adOpenKeyset
oConsBO:Source := oVar
oConsBO:ActiveConnection( oLamcla:oServer )
TRY
oConsBO:Open()
CATCH oError
MsgStop(oLamcla:mComa,mDato)
END
nRegistros := oConsBO:RecordCount()
IF nRegistros#0
oConsBO:MoveFirst()
vMedi:=oConsBO:Fields("b_bodega"):Value
vNomb:=oConsBO:Fields("b_nombre"):Value
oConsBO:close()
MsgAlert("Bodega Existente:"+CRLF+;
"Código:->"+alltrim(vMedi)+CRLF+;
"Nombre:->"+alltrim(vNomb)+CRLF+;
"Digite Nuevamente",oLamcla:mDato)
oB2og1:setfocus()
ELSE
oConsBO:close()
pGrabBod()
ENDIF
ELSEIF oLamcla:vgraba=.f.
pGrabBod()
ENDIF
ENDIF
ENDIF
************************************
*Graba los datos en la base de datos
************************************
PROC pGrabBod()
uFec:=date()
uTim:=subs(time(),1,8)
uCou:=alltrim(oLamcla:vCous)
IF oLamcla:vgraba=.t.
oLamcla:oRsBodega:Addnew()
oLamcla:oRsBodega:Fields("b_bodega"):value := alltrim(oB2vg1)
oLamcla:oRsBodega:Fields("b_nombre"):value := alltrim(oB2vg2)
oLamcla:oRsBodega:Fields("b_direcc"):value := alltrim(oB2vg3)
oLamcla:oRsBodega:Fields("b_telefo"):value := alltrim(oB2vg4)
oLamcla:oRsBodega:Fields("umovim"):value := 0
oLamcla:oRsBodega:Fields("usuari"):value := uCou
oLamcla:oRsBodega:Fields("ufecha"):value := uFec
oLamcla:oRsBodega:Fields("uhoras"):value := uTim
oLamcla:oRsBodega:Update()
ELSE
oLamcla:oRsBodega:Fields("b_bodega"):value := alltrim(oB2vg1)
oLamcla:oRsBodega:Fields("b_nombre"):value := alltrim(oB2vg2)
oLamcla:oRsBodega:Fields("b_direcc"):value := alltrim(oB2vg3)
oLamcla:oRsBodega:Fields("b_telefo"):value := alltrim(oB2vg4)
oLamcla:oRsBodega:Fields("usuari"):value := uCou
oLamcla:oRsBodega:Fields("ufecha"):value := uFec
oLamcla:oRsBodega:Fields("uhoras"):value := uTim
oLamcla:oRsBodega:Update()
ENDIF
oLamcla:oRsBodega:Requery()
oLamcla:oBrwBode:Refresh()
oCuadr1:end()
******************
*Modificar Bodegas
******************
PROC pModiBod()
tama:=50-len(oLamcla:oRsBodega:Fields("b_nombre"):Value)
tamb:=50-len(oLamcla:oRsBodega:Fields("b_direcc"):Value)
tamc:=20-len(oLamcla:oRsBodega:Fields("b_telefo"):Value)
oB2vg1:=oLamcla:oRsBodega:Fields("b_bodega"):Value
oB2vg2:=oLamcla:oRsBodega:Fields("b_nombre"):Value+space(tama)
oB2vg3:=oLamcla:oRsBodega:Fields("b_direcc"):Value+space(tamb)
oB2vg4:=oLamcla:oRsBodega:Fields("b_telefo"):Value+space(tamc)
DEFINE BRUSH oFondo FILE ".\res\res_403.BMP"
DEFINE DIALOG oCuadr1 RESOURCE "orBodeg1" ICON "#8001" TRANSPARENT BRUSH oFondo
REDEFINE BUTTONBMP Btn_Grab ID 11 OF oCuadr1 BITMAP "Bgrab" ACTION pValiBod()
REDEFINE BUTTONBMP Btn_Canc ID 10 OF oCuadr1 BITMAP "Bcanc" ACTION oCuadr1:End()
REDEFINE GET oB2og1 VAR oB2vg1 ID 4001 OF oCuadr1
REDEFINE GET oB2og2 VAR oB2vg2 ID 4003 OF oCuadr1
REDEFINE GET oB2og3 VAR oB2vg3 ID 4004 OF oCuadr1
REDEFINE GET oB2og4 VAR oB2vg4 ID 4006 OF oCuadr1
oB2og1:disable()
oCuadr1:cTitle := "Modificar Registro Tabla Bodegas"
ACTIVATE DIALOG oCuadr1 CENTERED
****************
*Borrar Registro
****************
PROC pBorrBod()
nRegistros := oLamcla:oRsBodega:RecordCount()
IF nRegistros#0
oM2vg1:=oLamcla:oRsBodega:Fields("b_bodega"):Value
oM2vg2:=oLamcla:oRsBodega:Fields("b_nombre"):Value
IF MSGNOYES("Confirma Eliminar Bodega"+CRLF+;
"Código:->"+alltrim(oM2vg1)+CRLF+;
"Nombre:->"+alltrim(oM2vg2),oLamcla:mCoto)
oLamcla:oRsBodega:Delete()
oLamcla:oRsBodega:Requery()
oLamcla:oBrwBode:Refresh()
ENDIF
ENDIF
************************************
*hace la busqueda global en la tabla
************************************
PROC pBusBod()
IF Empty(oLamcla:oC1vg1)
oLamcla:oRsBodega:Filter := ""
ELSE
oLamcla:oRsBodega:Filter := oLamcla:vOrden+" LIKE '%" + alltrim(oLamcla:oC1vg1) + "%'"
IF oLamcla:oRsBodega:EOF .and. oLamcla:oRsBodega:BOF
MsgStop( oLamcla:mBusc,oLamcla:mDato)
oLamcla:oRsBodega:Filter := ""
ENDIF
ENDIF
oLamcla:oRsBodega:REQUERY()
oLamcla:oBrwBode:Refresh()
RETURN( NIL )
******************
*orden de la tabla
******************
PROC pOrdBod()
oLamcla:oRsBodega:Sort := oLamcla:vOrden
oLamcla:oRsBodega:REQUERY()
oLamcla:oBrwBode:Refresh()
*********************
*Imprimir Información
*********************
PROC pImprBod()
nRegistros := oLamcla:oRsBodega:RecordCount()
IF nRegistros#0
IF (oLamcla:oTimpr=1,pIPBod(),pIXBod())
ELSE
Msginfo(oLamcla:mErim,oLamcla:mDato)
ENDIF
********************
*IMPRIME EN PANTALLA
********************
PROC pIPBod()
local oReport,nLinea := 1, nHasta := oLamcla:oRsBodega:RECORDCOUNT(), ;
nBookMark := oLamcla:oRsBodega:BookMark
oLamcla:oRsBodega:MoveFirst()
uFec:=dtoc(date())
uTim:=subs(time(),1,8)
REPORT oReport CAPTION "TABLA DE BODEGAS" HEADER oLamcla:vGnom,"NIT:"+lymatrim(oLamcla:vGnit)+"-"+lymatrim(oLamcla:vGdig),"TABLA DE BODEGAS","Página Número: " + STR (oReport:nPage, 3),"Fecha Reporte: "+uFec+" - Hora: "+uTim;
CENTER PREVIEW
COLUMN TITLE "Código" DATA oLamcla:oRsBodega:Fields("b_bodega"):value SIZE 9
COLUMN TITLE "Nombre" DATA oLamcla:oRsBodega:Fields("b_nombre"):value SIZE 25
COLUMN TITLE "Dirección" DATA oLamcla:oRsBodega:Fields("b_direcc"):value SIZE 25
COLUMN TITLE "Teléfono" DATA oLamcla:oRsBodega:Fields("b_telefo"):value SIZE 15
END REPORT
oReport:bWhile := { || nLinea <= nHasta }
oReport:oDevice:SetPortrait()
oReport:oDevice:lPrvModal := .T.
IF oReport:lCreated
oReport:bSkip := { | | nLinea++, oLamcla:oRsBodega:MoveNext() }
ENDIF
ACTIVATE REPORT oReport ;
ON END oLamcla:oRsBodega:BookMark := nBookMark
oLamcla:oRsBodega:REQUERY()
oLamcla:oBrwBode:Refresh()
********************
*IMPRIME EN EXCEL
********************
PROC pIXBod()
LOCAL fila:=1
LOCAL vCod:="CODIGO"
LOCAL vNom:="NOMBRE"
LOCAL vDir:="DIRECCION"
LOCAL vTel:="TELEFONO"
Gvtitu:="TABLA DE BODEGAS"
oXls := Txls():New( ".\xls\Bodegas.xls",, .T. )
oXls:Width( 01 , 10 )
oXls:Width( 02 , 50 )
oXls:Width( 03 , 50 )
oXls:Width( 04 , 20 )
oXls:Say( fila, 01, Gvtitu ,,,,,1 )
++fila
oXls:Say( fila, 01, vCod ,,,,,1 )
oXls:Say( fila, 02, vNom ,,,,,1 )
oXls:Say( fila, 03, vDir ,,,,,1 )
oXls:Say( fila, 04, vTel ,,,,,1 )
++fila
oLamcla:oRsBodega:MoveFirst()
Do While !oLamcla:oRsBodega:Eof()
oXls:Say( fila, 01, oLamcla:oRsBodega:Fields( "b_bodega" ):Value ,,,,,0 )
oXls:Say( fila, 02, oLamcla:oRsBodega:Fields( "b_nombre" ):Value ,,,,,0 )
oXls:Say( fila, 03, oLamcla:oRsBodega:Fields( "b_direcc" ):Value ,,,,,0 )
oXls:Say( fila, 04, oLamcla:oRsBodega:Fields( "b_telefo" ):Value ,,,,,0 )
oLamcla:oRsBodega:MoveNext()
++fila
EndDo
oXls:End()
oLamcla:oRsBodega:REQUERY()
oLamcla:oBrwBode:Refresh()
SHELLEXECUTE(,"OPEN",".\xls\Bodegas.xls",,,)
Code: Select all
***************************************
*REALIZA CON CONEXION PARA LOS PERMISOS
***************************************
FUNCTION ConPerm()
TRY
oLamcla:oConPer:=toleauto():new("adodb.connection")
CATCH oError
MsgStop( "No se ha podido crear la conexión !", "Error de datos")
END
oLamcla:oConPer:ConnectionString:="Driver={MySQL ODBC 3.51 Driver};Server=localhost;Port=3306;User=root;Password=Pass;Option=3;"
TRY
oLamcla:oConPer:Open()
CATCH oError
MsgStop( "No pude abrir la conexión para crear las tablas !", "Error de datos")
END
cCommandSql := "USE "+oLamcla:cEmpDBda
TRY
oLamcla:oConPer:Execute(cCommandSql)
CATCH oError
IF MSGNOYES(oLamcla:mEdb1+CRLF+oLamcla:mEdb2+CRLF+oLamcla:mEdb3,oLamcla:mErco)
cCommandSql := "CREATE DATABASE IF NOT EXISTS "+oLamcla:cEmpDBda
TRY
oLamcla:oConPer:Execute(cCommandSql)
CATCH oError
MSGINFO(oLamcla:mEdb4,oLamcla:mErco)
END
ELSE
QUIT
ENDIF
END
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
-
- Posts: 132
- Joined: Sun Oct 23, 2005 4:09 pm
- Location: Pánuco,Ver. México
Re: SQL Server
Agradezco mucho tu aporte, Leandro
voy a probarlo, me llevaré un rato en esto
Saludos
desde México
voy a probarlo, me llevaré un rato en esto
Saludos
desde México