Page 1 of 4

Pasar a SQL paso a paso para Novatos..

PostPosted: Wed Jul 23, 2014 9:44 pm
by cuatecatl82
Saludos foro:

Estoy intentando usar SQL, pero con tanta información ya me confundi, creo que como muchos no damos el paso de usar DBF a SQL porque la información es muy confusa, demasiado técnica y hasta cierto punto fastidiante como me ha pasado a mi varias veces con este proceso, hasta ahora tengo entendido que necesito un motor para gestionar las bases de datos, sea MySQL, MariaDb y las funciones que se comuniquen con el motor como Eagle, TDolphin, TSql.

Yo opte por usar MariaDB y TDolphin, ya tengo el instalador de Maria DB, me gustaria saber que y como lo configurar para empezar.

Baje del sitio de Daniel Garcia Gil el SVN los fuentes para crear la libreria siguiendo los pasos de su pagina, edite el archivo setenvh.bat para cambiar las direcciones de mis carpetas, en mi caso tengo todo en un disco "Z:\"
Z:\BCC582\, Z:\HARBOUR\, Z:FWH\, quedando de esta forma:

@CALL CLEANENV.BAT
@SET PRG_COMPILER=HARBOUR
@SET PRG_COMP_PATH=Z:\HARBOUR
@SET PRG_COMP_BIN_PATH=%PRG_COMP_PATH%\bin
@SET PRG_COMP_LIB_PATH=%PRG_COMP_PATH%\lib\win\bcc
@SET PRG_COMP_INC_PATH=%PRG_COMP_PATH%\include
@SET C_COMPILER=BCC
@SET C_COMP_PATH=Z:\BCC582
@SET C_COMP_BIN_PATH=%C_COMP_PATH%\bin
@SET C_COMP_LIB_PATH=%C_COMP_PATH%\lib;%C_COMP_PATH%\lib\psdk
@SET C_COMP_INC_PATH=%C_COMP_PATH%\include
@SET DOLPHIN_INC=.\include
@CALL win-make


Al ejecutar setenvh.bat comienza la creacion de la libreria dolphin.lib con Win-Make.exe y lanza lo siguiente:
Z:\TDolphin>clean

Z:\TDolphin>setenvh
# -----------------------------------------------------------------------
# Building dolphin.lib
#
# C COMPILER :BCC
# PRG COMPILER :HARBOUR
# -----------------------------------------------------------------------
Compiling .\source\prg\tdolpexp.prg
Compiling .\obj\HARBOUR\BCC\tdolpexp.c
Compiling .\source\prg\tdolpqry.prg
Compiling .\obj\HARBOUR\BCC\tdolpqry.c
Compiling .\source\prg\tdolpsrv.prg
Compiling .\obj\HARBOUR\BCC\tdolpsrv.c
Compiling .\source\c\function.c
Compiling .\source\c\gerrapi.c
Compiling .\source\lang\msges.c
Compiling .\source\lang\msgen.c
rm .\obj\HARBOUR\BCC\tdolpsrv.c .\obj\HARBOUR\BCC\tdolpqry.c .\obj\HARBOUR\BCC\t
dolpexp.c

Z:\TDolphin>


El archivo make.log que crea contiene lo siguiente:
# -----------------------------------------------------------------------
# Building dolphin.lib
#
# C COMPILER :BCC
# PRG COMPILER :HARBOUR
# -----------------------------------------------------------------------
Z:\HARBOUR\bin\harbour.exe .\source\prg\tdolpexp.prg -D -D__WIN__ -D__NODEBUG__ -q0 /N /W /w /es2 /O.\obj\HARBOUR\BCC\ /I.\include;Z:\HARBOUR\include;
Compiling .\source\prg\tdolpexp.prg
Z:\BCC582\bin\bcc32 -c -D__WIN__ -D__HARBOUR__ -DHB_LEGACY_TYPES_ON -tWM -IZ:\HARBOUR\include -I.\include -o.\obj\HARBOUR\BCC\tdolpexp.obj .\obj\HARBOUR\BCC\tdolpexp.c
Compiling .\obj\HARBOUR\BCC\tdolpexp.c
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
.\obj\HARBOUR\BCC\tdolpexp.c:
# -----------------------------------------------------------------------
Z:\HARBOUR\bin\harbour.exe .\source\prg\tdolpqry.prg -D -D__WIN__ -D__NODEBUG__ -q0 /N /W /w /es2 /O.\obj\HARBOUR\BCC\ /I.\include;Z:\HARBOUR\include;
Compiling .\source\prg\tdolpqry.prg
Z:\BCC582\bin\bcc32 -c -D__WIN__ -D__HARBOUR__ -DHB_LEGACY_TYPES_ON -tWM -IZ:\HARBOUR\include -I.\include -o.\obj\HARBOUR\BCC\tdolpqry.obj .\obj\HARBOUR\BCC\tdolpqry.c
Compiling .\obj\HARBOUR\BCC\tdolpqry.c
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
.\obj\HARBOUR\BCC\tdolpqry.c:
# -----------------------------------------------------------------------
Z:\HARBOUR\bin\harbour.exe .\source\prg\tdolpsrv.prg -D -D__WIN__ -D__NODEBUG__ -q0 /N /W /w /es2 /O.\obj\HARBOUR\BCC\ /I.\include;Z:\HARBOUR\include;
Compiling .\source\prg\tdolpsrv.prg
Z:\BCC582\bin\bcc32 -c -D__WIN__ -D__HARBOUR__ -DHB_LEGACY_TYPES_ON -tWM -IZ:\HARBOUR\include -I.\include -o.\obj\HARBOUR\BCC\tdolpsrv.obj .\obj\HARBOUR\BCC\tdolpsrv.c
Compiling .\obj\HARBOUR\BCC\tdolpsrv.c
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
.\obj\HARBOUR\BCC\tdolpsrv.c:
# -----------------------------------------------------------------------
Z:\BCC582\bin\bcc32 -c -D__WIN__ -D__HARBOUR__ -DHB_LEGACY_TYPES_ON -tWM -IZ:\HARBOUR\include -I.\include -o.\obj\HARBOUR\BCC\function.obj .\source\c\function.c
Compiling .\source\c\function.c
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
.\source\c\function.c:
Warning W8060 .\source\c\function.c 811: Possibly incorrect assignment in function HB_FUN_DOLPHINFILLARRAY
Warning W8004 .\source\c\function.c 838: 'i' is assigned a value that is never used in function HB_FUN_DOLPHINFILLARRAY
Warning W8012 .\source\c\function.c 1323: Comparing signed and unsigned values in function HB_FUN_MYSEEK2
Warning W8012 .\source\c\function.c 1325: Comparing signed and unsigned values in function HB_FUN_MYSEEK2
Warning W8060 .\source\c\function.c 1597: Possibly incorrect assignment in function HB_FUN_MYBACKUP
Warning W8004 .\source\c\function.c 1576: 'cField' is assigned a value that is never used in function HB_FUN_MYBACKUP
# -----------------------------------------------------------------------
Z:\BCC582\bin\bcc32 -c -D__WIN__ -D__HARBOUR__ -DHB_LEGACY_TYPES_ON -tWM -IZ:\HARBOUR\include -I.\include -o.\obj\HARBOUR\BCC\gerrapi.obj .\source\c\gerrapi.c
Compiling .\source\c\gerrapi.c
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
.\source\c\gerrapi.c:
Warning W8064 .\source\c\gerrapi.c 87: Call to function with no prototype in function LoadMsgs
Warning W8070 .\source\c\gerrapi.c 114: Function should return a value in function GetGErrorMsg
# -----------------------------------------------------------------------
Z:\BCC582\bin\bcc32 -c -D__WIN__ -D__HARBOUR__ -DHB_LEGACY_TYPES_ON -tWM -IZ:\HARBOUR\include -I.\include -o.\obj\HARBOUR\BCC\msges.obj .\source\lang\msges.c
Compiling .\source\lang\msges.c
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
.\source\lang\msges.c:
# -----------------------------------------------------------------------
Z:\BCC582\bin\bcc32 -c -D__WIN__ -D__HARBOUR__ -DHB_LEGACY_TYPES_ON -tWM -IZ:\HARBOUR\include -I.\include -o.\obj\HARBOUR\BCC\msgen.obj .\source\lang\msgen.c
Compiling .\source\lang\msgen.c
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
.\source\lang\msgen.c:
# -----------------------------------------------------------------------
Z:\BCC582\bin\tlib .\lib\HARBOUR\BCC\dolphin.lib +-.\obj\HARBOUR\BCC\tdolpexp.obj +-.\obj\HARBOUR\BCC\tdolpqry.obj +-.\obj\HARBOUR\BCC\tdolpsrv.obj +-.\obj\HARBOUR\BCC\function.obj +-.\obj\HARBOUR\BCC\gerrapi.obj +-.\obj\HARBOUR\BCC\msges.obj +-.\obj\HARBOUR\BCC\msgen.obj /0 /P32,,

TLIB 4.5 Copyright (c) 1987, 1998 Borland International

Warning: 'tdolpexp' not found in library
Warning: 'tdolpqry' not found in library
Warning: 'tdolpsrv' not found in library
Warning: 'function' not found in library
Warning: 'gerrapi' not found in library
Warning: 'msges' not found in library
Warning: 'msgen' not found in library


En mi caso la libreria fue creada en "Z:\TDolphin\lib\HARBOUR\BCC\dolphin.lib" con un tamaño de 105Kb, me nace la duda si la libreria fue creada correctamente por los warnings que arroja el compilado...

Si la libreria fue creada con exito, que sigue ??, Cuál es el paso siguiente para empezar a conocer SQL.

Dentro de la carpeta samples hay varios ejemplos y el scritpts para crearlos: bldcon.bat para modo consola y bldfw.bat para usar en modo grafico con Fivewin.

Pruebo con "bldfw testfw1" modo grafico y el resultado:
# -----------------------------------------------------------------------
# Building sample testfw1.prg EMBEDDED : no
#
# C COMPILER :BCC
# PRG COMPILER :HARBOUR
# -----------------------------------------------------------------------

Compiling testfw1.prg
Compiling testfw1.c
Compiling testfw1.rc
win-make: *** [testfw1.res] Error 20018

Z:\TDolphin\samples>



Pruebo con "bldcon testai" modo consola y el resultado:
# -----------------------------------------------------------------------
# Building sample testai.prg EMBEDDED : no
#
# C COMPILER :BCC
# PRG COMPILER :HARBOUR
# -----------------------------------------------------------------------

Compiling testai.prg
Compiling testai.c
Linking testai.obj
Turbo Incremental Link 5.69 Copyright (c) 1997-2005 Borland
Warning: Unable to load DLL LNKDFM50
testai.exe

<ERROR Object>
|
+- PRIVATE/HIDDEN:
|
+- PROTECTED:
|
+- EXPORTED/VISIBLE/PUBLIC:
| +- >> Begin Data ------
| +- ARGS [Method ] [Ex ] U => NIL
| +- CANDEFAULT [Method ] [Ex ] L => .F.
| +- CANRETRY [Method ] [Ex ] L => .F.
| +- CANSUBSTITUTE [Method ] [Ex ] L => .F.
| +- CARGO [Method ] [Ex ] U => NIL
| +- DESCRIPTION [Method ] [Ex ] C => "Access denied f
or user 'test_dolphin'@'187.175.76.96' (using password: YES) "
| +- FILENAME [Method ] [Ex ] C => ""
| +- GENCODE [Method ] [Ex ] N => 0
| +- OPERATION [Method ] [Ex ] C => ""
| +- OSCODE [Method ] [Ex ] N => 0
| +- SEVERITY [Method ] [Ex ] N => 2
| +- SUBCODE [Method ] [Ex ] N => 1045
| +- SUBSYSTEM [Method ] [Ex ] C => "MYSQL"
| +- TRIES [Method ] [Ex ] N => 0
| +- >> End Data ------
|
| +- >> Begin Methods ------
| +- ERROR [Super ] [Ex ]
| +- >> End Methods ------
|
+----------->

Z:\TDolphin\samples>


Que estoy haciendo mal..?, Construi mal la libreria..? Falta configurar algo en MariaDB..?

Esto es como topar con pared.. es muy confuso cuando no estan las cosas claras.. Si alguien me pudiera comentar en donde esta el fallo y donde empezar a probar se agradeceria bastante..

Uso Harbour 3.0.0 y Borland 5.82 Gracias de antemano..

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Wed Jul 23, 2014 9:47 pm
by Armando
Victor:

Si se trata de un proyecto nuevo, por qué no te vas directamente a FWH + ADO?

Saludos

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Wed Jul 23, 2014 9:53 pm
by cuatecatl82
Saludos Armando y gracias por leer mi mensaje:

MMMM.. ADO es de pago..? Creo que si..?

He buscado documentacion en el foro y casi nadie lo usa, es mas comun TDolphin además de que fue creado por Daniel Garcia Gil, por eso elegi esta clase, pero si estoy mal me regreso jejeje.. Saludos..

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Wed Jul 23, 2014 10:23 pm
by elvira
Amigitos,

ADO es mucho más fácil y sirve para cualquier motor de datos.

Mira este ejemplito de Mr. Rao:

Code: Select all  Expand view

#include "fivewin.ch"
#include "adodef.ch"
#include "xbrowse.ch"

function Main()

   local oCn, oRs
   local oWnd, oFont, oBrw, oMiSort

   SET DATE ITALIAN
   SET CENTURY ON

   oCn      := FW_OpenAdoConnection( "c:\fwh\samples\" )
   oRs      := FW_OpenRecordSet( oCn, "
SALES" )

   DEFINE FONT oFont NAME "
TAHOMA" SIZE 0,-14
   DEFINE WINDOW oWnd TITLE "
DBF TABLE THROUGH ADO"
   oWnd:SetFont( oFont )

   DEFINE BUTTONBAR oWnd:oBar SIZE 100,32 2010
   DEFINE BUTTON OF oWnd:oBar PROMPT "
Add"    ACTION oBrw:Edit( .t. )
   DEFINE BUTTON OF oWnd:oBar PROMPT "
Edit"   ACTION oBrw:Edit()
   DEFINE BUTTON OF oWnd:oBar PROMPT "
Delete" ACTION oBrw:Delete()
   DEFINE BUTTON OF oWnd:oBar PROMPT "
Report" ACTION oBrw:Report()
   DEFINE BUTTON OF oWnd:oBar PROMPT "
Close"  ACTION oWnd:End()

   SET MESSAGE OF oWnd TO "
" 2010
   DEFINE MSGITEM oMiSort PROMPT If( Empty( oRs:Sort ), "
NATURAL", oRs:Sort ) ;
      SIZE 200
   oMiSort:bMsg   := { || If( Empty( oRs:Sort ), "
NATURAL", oRs:Sort ) }

   @ 0,0 XBROWSE oBrw OF oWnd DATASOURCE oRs ;
      AUTOCOLS AUTOSORT CELL LINES NOBORDER FOOTERS

   AEval( oBrw:aCols, { |o| If( o:cDataType == 'N', o:nFooterType := AGGR_SUM, nil ) } )
   WITH OBJECT oBrw
      :nEditTypes       := EDIT_GET
      :bLClickHeaders   := { || oMiSort:Refresh() }
      :MakeTotals()
      //
      :CreateFromCode()
   END
   oWnd:oClient   := oBrw
   ACTIVATE WINDOW oWnd
   RELEASE FONT oFont

   oRs:Close()
   oCn:Close()

return nil

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Wed Jul 23, 2014 10:24 pm
by elvira
Amigitos,

ADO es mucho más fácil y sirve para cualquier motor de datos.

Mira este ejemplito de Mr. Rao:

Code: Select all  Expand view

#include "fivewin.ch"
#include "adodef.ch"
#include "xbrowse.ch"

function Main()

   local oCn, oRs
   local oWnd, oFont, oBrw, oMiSort

   SET DATE ITALIAN
   SET CENTURY ON

   oCn      := FW_OpenAdoConnection( "c:\fwh\samples\" )
   oRs      := FW_OpenRecordSet( oCn, "
SALES" )

   DEFINE FONT oFont NAME "
TAHOMA" SIZE 0,-14
   DEFINE WINDOW oWnd TITLE "
DBF TABLE THROUGH ADO"
   oWnd:SetFont( oFont )

   DEFINE BUTTONBAR oWnd:oBar SIZE 100,32 2010
   DEFINE BUTTON OF oWnd:oBar PROMPT "
Add"    ACTION oBrw:Edit( .t. )
   DEFINE BUTTON OF oWnd:oBar PROMPT "
Edit"   ACTION oBrw:Edit()
   DEFINE BUTTON OF oWnd:oBar PROMPT "
Delete" ACTION oBrw:Delete()
   DEFINE BUTTON OF oWnd:oBar PROMPT "
Report" ACTION oBrw:Report()
   DEFINE BUTTON OF oWnd:oBar PROMPT "
Close"  ACTION oWnd:End()

   SET MESSAGE OF oWnd TO "
" 2010
   DEFINE MSGITEM oMiSort PROMPT If( Empty( oRs:Sort ), "
NATURAL", oRs:Sort ) ;
      SIZE 200
   oMiSort:bMsg   := { || If( Empty( oRs:Sort ), "
NATURAL", oRs:Sort ) }

   @ 0,0 XBROWSE oBrw OF oWnd DATASOURCE oRs ;
      AUTOCOLS AUTOSORT CELL LINES NOBORDER FOOTERS

   AEval( oBrw:aCols, { |o| If( o:cDataType == 'N', o:nFooterType := AGGR_SUM, nil ) } )
   WITH OBJECT oBrw
      :nEditTypes       := EDIT_GET
      :bLClickHeaders   := { || oMiSort:Refresh() }
      :MakeTotals()
      //
      :CreateFromCode()
   END
   oWnd:oClient   := oBrw
   ACTIVATE WINDOW oWnd
   RELEASE FONT oFont

   oRs:Close()
   oCn:Close()

return nil

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Wed Jul 23, 2014 10:38 pm
by cuatecatl82
Gracias elvira

Donde obtengo ADO, necesita alguna configuración extra o solo se instala y se trabaja al vuelo..

Gracias.

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Wed Jul 23, 2014 10:57 pm
by Antonio Linares
Victor,

No necesitas instalar nada. ADO viene ya en Windows por defecto :-)

Y si quieres probar con el motor local de Access pues tampoco tienes que descargar ó instalar nada, puesto que tambien viene con Windows :-)

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Wed Jul 23, 2014 11:03 pm
by Armando
Victor:

Nop, ADO no es de paga y MariaDB tampoco, así que tienes todo lo necesario
para iniciarte en el "bajo mundo" de ADO.

Saludos

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Wed Jul 23, 2014 11:21 pm
by Antonio Linares
Acabo de probarlo en XP y funciona tambien, increible :-)

O sea que desde XP ya podriamos haber estado usando ADO + el motor local de Access :-)

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Thu Jul 24, 2014 2:57 pm
by juan carlos bellucci
Con todo respeto si quieres hacer aplicaciones con mysql y que sean super rápidas en la red, prueba aprender php , creo que por ahí pasa la cosa.
Yo Amo a fivewin pero reconozco que php me solucciono varios problemas.

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Thu Jul 24, 2014 6:29 pm
by sysctrl2
1 . Opte por tDolphin porque tenemos el código.prg
2 . no necesitas instalar nada, solo uso la libmysql.dll en la carpeta de mi exe
3. vienen mucho ejemplos fácil de entender empezando con el CONECT.INI

ADO, quizás sea algo propio de WINDOWS pero que pasa si el servidor es LINUx ? ( Lo desconozco )

mi granito de sabiduría.

saludos.

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Thu Jul 24, 2014 7:14 pm
by cuatecatl82
sysctrl2 :

Andale esa es mi idea, con codigo fuente, tenemos a la mano al creador de la clase para dudas, sin complicarse tanto, ando probando con ADO pero es un matadero, no entiendo nada y cada vez que leo mas me confunden tantos motores y clases para acceder, opto por algo mas facil.

La libreria la construiste con Harbour o con xHarbour.. con que versión?

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Thu Jul 24, 2014 8:05 pm
by horacio
Hola, yo utilizo Ado sobre un servidor Linux. Funciona a las mil maravillas.

Saludos

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Thu Jul 24, 2014 9:26 pm
by davidObarrio
gracias por los datos....

y pasa SQL SERVER ? que recomiendan ?

david

Re: Pasar a SQL paso a paso para Novatos..

PostPosted: Thu Jul 24, 2014 9:40 pm
by wmormar
David,

SQL SERVER con ADO definitivamente

Saludos

davidObarrio wrote:gracias por los datos....

y pasa SQL SERVER ? que recomiendan ?

david