FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ayuda con Informix - Disculpen que insista
Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
Ayuda con Informix - Disculpen que insista
Posted: Fri Sep 05, 2008 01:59 PM

Bueno, Pero ya me embarque en esta!, De todas formas, les lanzo un ejemplo de coneccion:

static function CheckConnection()
local cHost :="194.187.0.1"
local cUser :="superv1"
local cPassword :="adsistem"
cDtBase :="base_datos_hcm"
cDtComun :="BDComun"
// Creamos el objeto "connexion" y
// Nos conectamos al servidor
oMySQL:=TMSConnect():New()

  oMySQL:Connect( cHost, cUser, cPassword)

   if !oMySql:lConnected
      MsgInfo( "No hay conexion con el servidor", "Operaci贸n Cancelada" )
      return( .F. )
   endif
  // Creamos un objeto DataBase y
  // Ponemos por defecto el objeto DataBase
  *USE DATABASE oDtBase NAME cDbName OF oMySQL // equivale a :
  oDtBase:= TMSDataBase():new( oMysql, cDtBase,.t.)
  if !oDtBase:Used()
     if oMySql:ExistDb( cDtBase )
        MsgInfo( "No se puede conectar, Pero Existe:" + cDtBase, "Operaci贸n Cancelada" )
     else
        MsgInfo( "No se puede conectar a la BD: " + cDtBase, "Operaci贸n Cancelada" )
     endif
     return( .F. )
  endif
  oDtComun:= TMSDataBase():new( oMysql, cDTComun,.t.)
  if !oDtComun:Used()
     if oMySql:ExistDb( cDtComun )
        MsgInfo( "No se puede conectar, Pero Existe:" + cDtComun, "Operaci贸n Cancelada" )
     else
        MsgInfo( "No se puede conectar a la BD: " + cDtComun, "Operaci贸n Cancelada" )
     endif
     return( .F. )
  endif

return (.t.)
[/code]

Saludos



Angel, Valencia, Venezuela



xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
Ayuda con Informix - Disculpen que insista
Posted: Fri Sep 05, 2008 02:07 PM

Y aqui otro ejemplo

// bloque para efectuar el query

bSeek:={| cSeek | 'SELECT '+cDTBase+'.DtsRamo.IntIdDtsRamo,'+;
cDTBase+'.DtsRamo.VchDescripcion,'+;
cDTBase+'.DtsRamo.TinStatus'+;
' FROM '+cDTBase+'.DtsRamo '+;
' WHERE '+cDTBase+'.DtsRamo.TinStatus <> 0 AND '+;
cDTBase+'.DtsRamo.VchDescripcion LIKE '+"'%"+ALLTRIM(cSeek)+"%'"+;
' ORDER BY '+cDTBase+'.DtsRamo.VchDescripcion '}
oQuery :=TMSQuery():New( oDTbase ) // inicializa la clase
oQuery:Open( eval(bSeek,"") ) // efectua el query

IF ( oQuery:nRowCount=0 ) // si no hay registros
MSGALERT("No Existen Ramos, Incluya Alguno","Atenci贸n...")
CreaRamo(oWnd,0,0,0,,1,.T.)
oQuery:Open( eval(bSeek,"") )
ENDIF

Nota: esto es para efectuar un listbox con busqueda cont铆nua por el campo VchDescripcion

Saludos



Angel, Valencia, Venezuela



xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
Ayuda con Informix - Disculpen que insista
Posted: Fri Sep 05, 2008 02:11 PM

Y aqui el Listbox:

  REDEFINE GET  oSeek   VAR cSeek  ID 201 OF oDlg    ;
           MESSAGE "Coloque Filtro";
           PICTURE "@!";
           ON CHANGE (FiltroSql( @oLbx , cSeek , @oQuery,EVAL(bSeek,cSeek)),;
                      eval(bRowCount))

  REDEFINE LISTBOX oLbx ;
           FIELDS oQuery:FieldGet( 2 );
           FIELDSIZES 190;
           MESSAGE "Seleccione Ramo, ([Enter] o Doble Click =&gt; Modifica)";
           HEADERS "Descripci贸n" ID 401 OF oDlg

  oQuery:GoTop():Read()         // No se olvide nunca de esta linea
  MySetBrowse(oLbx,oQuery)      // No Olvidarse Nunca de Esta L铆nea
  oLbx:cAlias       := "ARRAY"  // No Olvidarse de "ESTO", si no se tranca

Nota: Yo Utilizo el TWBROWSE, Disculpe maestro mercado :oops:

Saludos



Angel, Valencia, Venezuela



xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Ayuda con Informix - Disculpen que insista
Posted: Fri Sep 05, 2008 02:12 PM
Como dice ADBLANCO, ya embarcado, ah铆 va

oCon := TMYsqlServer():new("localhost","root","mypassword")
IF oCon:lError
   ? "No hubo conexion al servidor, verifique..."
   RETURN NIL
ENDIF

oCon:SelectDB( "tutor" )
IF oCon:lError
   ? "No se encontr贸 la base de datos tutor, verifique..."
   RETURN NIL
ENDIF

.....
.....


Bueno, ese es el c贸digo de conexi贸n, no es tan "xbase", pero creo que es claro que con investigaci贸n, todo se puede.
William, Morales

Saludos



m茅xico.sureste
Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
Ayuda con Informix - Disculpen que insista
Posted: Fri Sep 05, 2008 02:18 PM

Un Ejemplo para actualizar (REPLACE y APPEND)

IF lContinuar
  IF lNew
    DO CASE
      CASE nTipo=1  // RAMO
        bSeek:={||'INSERT INTO '+cDTBase+'.DtsRamo(VchDescripcion,TinStatus) '+;
                  ' VALUES( '+bTrans(cDescrip)+',1)'}
      CASE nTipo=2  // COBERTURA
        bSeek:={||'INSERT INTO '+cDTBase+'.DtsCobertura(IntIdDtsRamo,VchDescripcion,TinStatus) '+;
                  ' VALUES( '+STR(nIdRamo,10,0)+','+bTrans(cDescrip)+',1)'}
      OTHERWISE     // SUBCOBERTURA
        bSeek:={||'INSERT INTO '+cDTBase+'.DtsSubCobertura(IntIdDtsCobertura,VchDescripcion,TinStatus) '+;
                  ' VALUES( '+STR(nIdCobert,10,0)+','+bTrans(cDescrip)+',1)'}
    ENDCASE
  ELSE
    DO CASE
      CASE nTipo=1  // RAMO
        bSeek:={||' UPDATE '+cDTBase+'.DtsRamo '+;
                  '    SET VchDescripcion ='+bTrans(cDescrip)+;
                  ' WHERE '+cDTBase+'.DtsRamo.IntIdDtsRamo = '+STR(nIdRamo)}
      CASE nTipo=2  // COBERTURA
        bSeek:={||' UPDATE '+cDTBase+'.DtsCobertura'+;
                  '    SET VchDescripcion ='+bTrans(cDescrip)+;
                  ' WHERE '+cDTBase+'.DtsCobertura.IntIdDtsCobertura ='+STR(nIdCobert,10,0)}
      OTHERWISE     // SUBCOBERTURA
        bSeek:={||' UPDATE '+cDTBase+'.DtsSubCobertura'+;
                  '    SET VchDescripcion ='+bTrans(cDescrip)+;
                  ' WHERE '+cDTBase+'.DtsSubCobertura.IntIdDtsSubCobertura ='+STR(nIdSubCobert,10,0)}
    ENDCASE
  ENDIF
  oQuery    :=TMSQuery():New( oDTbase )              // inicializa la clase
  oQuery:Open( eval(bSeek) )                         // efectua el query
  oQuery:Close()
  MSGALERT("Informaci贸n Acualizada Con Exito","Atenci贸n...")
  lOk  :=.t.
ENDIF
Saludos



Angel, Valencia, Venezuela



xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
Ayuda con Informix - Disculpen que insista
Posted: Fri Sep 05, 2008 02:21 PM

Y de eliminacion (Nosotros decidimos no eliminar sino marcar como eliminado)

IF MSGNOYES("Est谩 Seguro de Eliminar Este "+cMsg,"Atenci贸n...")
  DO CASE
    CASE nTipo=1  // RAMO
      bSeek:={||' UPDATE '+cDTBase+'.DtsRamo '+;
                '    SET TinStatus = 0'+;
                ' WHERE '+cDTBase+'.DtsRamo.IntIdDtsRamo = '+STR(nIdRamo)}
    CASE nTipo=2  // COBERTURA
      bSeek:={||' UPDATE '+cDTBase+'.DtsCobertura'+;
                '    SET TinStatus = 0'+;
                ' WHERE '+cDTBase+'.DtsCobertura.IntIdDtsCobertura ='+STR(nIdCobert,10,0)}
    OTHERWISE     // SUBCOBERTURA
      bSeek:={||' UPDATE '+cDTBase+'.DtsSubCobertura'+;
                '    SET TinStatus = 0'+;
                ' WHERE '+cDTBase+'.DtsSubCobertura.IntIdDtsSubCobertura ='+STR(nIdSubCobert,10,0)}
  ENDCASE
  oQuery    :=TMSQuery():New( oDTbase )              // inicializa la clase
  oQuery:Open( eval(bSeek) )                         // efectua el query
  oQuery:Close()
ENDIF
Saludos



Angel, Valencia, Venezuela



xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
Ayuda con Informix - Disculpen que insista
Posted: Fri Sep 05, 2008 02:26 PM

Ya ven que solo se trata de 'pasar' comandos al objeto de la base de datos

Ejemplos y Ejemplos, Eso es lo que necesitamos (Quien me dijo eso???)

Saludos



Angel, Valencia, Venezuela



xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
Ayuda con Informix - Disculpen que insista
Posted: Fri Sep 05, 2008 02:39 PM

Creo que ya nos estamos diluyendo, estamos bombardeando con ejemplos y c贸digo que al reci茅n llegado lo van terminar confundiendo mas.

Lo primero que deber铆amos aclarar, y decidir es que sistema vamos a usar, en pocos mensajes ya se han mencionado unas cuantas formas de hacer lo mismo. Si alguien que no lo tiene claro lee mensajes, y empieza a mezclar conceptos y trozos de c贸digo fuente, es imposible que saque nada en claro.

que obciones tenemos para acceder a la base de datos.(hasta ahora en ese hilo se ha mencionado)
1潞ADORDD, nos permite usar tablas SQL con los comandos tipicos del RDD, internamente usa ADO, pero nos aisla de esa capa, sin necesidad de aprender ADO.
2潞 ADO , debemos aprender a manejar las calses ADODB.
3潞 Usar una clase que nos ayude en el manejo de ADO (como ADOBASE)
4潞 Prescindir de la capa ADO y atacar directamente el API del motor SQL como tMySQL
5潞 Se ha mencionado Eagle, que si he oido hablar de el, pero que no se como se implementa. Lo catalogaria dentro de librerias de terceros, que nos permite no tener que profundizar demasiado en ADO, nos facilitan el camino.
Todas tienen ventajas y desventajas, se trata de elegir la que mejor se adapte a nuestras necesidades.

Seguro que hay m谩s, pero lo primero es decidir el camino a tomar, evaluando el coste en dinero, en tiempo de aprendizaje, en velocidad de acceso a los datos, etc.

Saludos desde Mallorca
Biel Maim贸
http://bielsys.blogspot.com/
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Ayuda con Informix - Disculpen que insista
Posted: Fri Sep 05, 2008 03:03 PM

Amigos:

Estoy de acuerdo con Biel (Saludos) y una vez allanado el camino, mis dos centavos.

Yo recomiendo tirar por ADO, aprenderlo es m谩s sencillo que quitarle su dinero a una borracha !, :-)

Saludos al foro

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 326
Joined: Sun Oct 09, 2005 05:22 PM
Ayuda con Informix - Disculpen que insista
Posted: Fri Sep 05, 2008 03:49 PM

Me pongo en la posici贸n m谩s c贸moda, tal vez no sea la m谩s adecuada pero no pretendo tirar m谩s de diez a帽os de desarrollo. La posibilidad de acceder a cualquier gestor SQL sin cambiar el c贸digo xBase ya existe, barato o caro depende del bolsillo y de las espectativas de negocio.

Si alguien me solicita un nuevo desarrollo y cubre el costo seguramente pensar茅 en usar nuevas herramientas y si son de uso libre mejor.

Por si hay alg煤n interesado aqu铆 les dejo un par de ejemplos (DBF2SQL y SQL2DBF) y una explicaci贸n de la funcionalidad.

http://www.despachoarteaga.com.mx/sqlrdd.zip

Posts: 243
Joined: Wed Sep 19, 2007 04:32 PM
Ayuda con Informix - Disculpen que insista
Posted: Fri Sep 05, 2008 05:26 PM

Cuando migre en serio de Clipper a FiveWin el a帽o pasado (2007) en el camino me di cuenta de la necesidad de tambien hacerlo a SQL , asi que no de le di vueltas al asunto, y compre la libreria de Freddy Rodr铆guez Franjul (http://www.fcsodbc.com).
Creo que para experimentar, buscar una alternativa profesional y libre, lo he dejado en espera, primero lo primero, el pan de cada dia.
He visto que algunos son reacios a usar librerias de terceros, pero creo que no podemos darnos el lujo de posponer el uso de SQL, para cuando haya una utilidad, libreria, RDD totalmente funcional, probado y ademas libre.
Y no crean que soy impaciente, estoy programando con clipper desde 1993, y salte a FWH como lo mencione antes en el 2007.

Saludos desde Honduras :)

Oscar A. Martinez
http://www.multisofthn.com
Honduras, Centro America
xHarbour Enterprise 1.2.2, Fivewin 13.06
Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
Ayuda con Informix - Disculpen que insista
Posted: Fri Sep 05, 2008 05:32 PM
Hola Manuel:
mmercado wrote:Algunos lo saben y otros lo suponemos pero lo que yo, y creo que muchos otros como yo, quisieramos saber es donde est谩n documentadas las herramientas que mencionas.

Ya he comentado en mensaje anterior que hay varios caminos a tomar. Suponiendo que tomamos la via ADO, de Harbour lo unico que haremos sera usar la instruccion CreateObject(o su equivalente tOleAuto():New()), que nos permitira ir creando los objetos ADO necesarios (ADODB.connection, ADODB.RecordSet, ...)
ADODB se maneja por igual desde cualquier lenguaje de programacion, lo que necesitamos es conocer sus colecciones, metodos y propiedades, ADODB esta extensamente documentado en la red, con multitud de ejemplos (la mayoria para lenguajes distintos a [x]Harbour, pero facilmente traducibles)

http://www.w3schools.com/ado/default.asp
http://msdn.microsoft.com/en-us/library/ms807498.aspx
La documentaci贸n existe y es amplia, pero hay que buscarla fuera de Harbour.
mmercado wrote:
Quisiera saber donde puedo encontrar ejemplos que podamos hacer funcionar a la primera, de eso trata mi requerimiento, de la recopilaci贸n de ejemplos funcionales.

Ademas de los que puedas encontrar para VB, VBS, etc, en mi blog puedes encontrar unos cuantos ejemplos muy basicos, para iniciarse con ADO, usan ficheros MDB, y no necesitan de ningun servidor. Esta incluido los ejecutables, y todo el c贸digo fuente.
http://bielsys.blogspot.com/2007/11/ado-connectionstring.html
http://bielsys.blogspot.com/2008/02/usando-origenes-de-datos-ado-1.html
http://bielsys.blogspot.com/2008/04/usando-origenes-de-datos-ado-y-2.html
Saludos desde Mallorca
Biel Maim贸
http://bielsys.blogspot.com/
Posts: 731
Joined: Fri Oct 07, 2005 07:42 AM
Ayuda con Informix - Disculpen que insista
Posted: Fri Sep 05, 2008 08:59 PM

Yo estoy totalmente de acuerdo con Adolfo, es m谩s, MARDITO HARBOUR QUE NO TRAE ACCESO A LOS DIFERENTES MOTORES SQL!

Si, CUALQUIER LENGUAJE , hasta el Clip, trae sus clases para acceso a distintos DMBS.

Es de pena tener que ir usando CONTRIBUCIONES de terceras personas, gracias desde aqui, que tan siguiera no estan ni mantenidas, se hace un copy/paste, hasta que ALGUN iluminado de HARBOUR les de por borrarlo.

A HARBOUR le falta un par de cosas;

  • UN RAD de desarrollo multiplataforma, si es posible, existen librerias que dotan esa posibilidad , Qt, GTK+ , xWidgets.

  • Acceso a los distintos motores de bases de datos.

El primero , aunque deseable, tampoco es un drama, porque tenemos diferentes alternativas, tanto de pago, como Fivewin, etc..., como libres, como MiniGUI.

El segundo, o son de pago, o la contrib , sinceramente,no son tan buenas como deberian ser, y lo digo porque he visto c贸digo de Eagle1, por poner un ejemplo, y como esta realizado y lo he comparado contra la TMySql de las contrib, y oiga, no hay color.
( Gracias desde aqui quien realizado la TmySql )

A mi modo de ver, este aspecto es de los m谩s importantes, y una verdadera pena.

Seamos realistas, las DBF , en este tiempo, NO SIRVEN!
Tenemos servidores potentes, libres , de pago, un MySQL , un PostGres, Sqlite3, y vamos a meter DBF con indices que cuando se les van la olla, generan un drama con el tema de ;
"Se detect贸 corrupci贸n...."

Hoy en dia nuestra aplicaci贸n ya NO ESTA SOLA, hoy en dia, las aplicaciones SE COMUNICAN entre ellas, por ejemplo, a traves de Web Services!!

Si Si, lo 煤ltimo que he visto, es una interfaz, yo no he podido hacerlo porque deberia Harbour darme la posiblidad de crear WebServices cosa que no es posible, de momento, en el cual , presuntamente mi aplicacion se comunica con otra aplicacion para el intercambio de datos.
Es decir, mi aplicacion PUBLICA unos methods determinados, y la otra aplicacion PUBLICA los suyos.
Al final, toca ir contra ORACLE, en este caso, porque asi LO ESTABLECE EL CLIENTE!.

L贸gicamente, yo, con Harbour, esto no es posible hacer, o no en un tiempo razonable.

Se帽ores, hay que empezar a quitarse de la mente el querer que Harbour sea nuestro SALVADOR de nuestras viejas aplicaciones, simplemente lavandole la cara y a seguir vendiendo.
Esto, desgraciadamente, es pan para hoy, hambre para ma帽ana.

En fin, ahora me toca pelearme con Delphi ;-(

Saludos

Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Posts: 476
Joined: Sat Feb 03, 2007 06:36 AM
Ayuda con Informix - Disculpen que insista
Posted: Sat Sep 06, 2008 10:09 PM

Pues yo estoy de acuerdo con varios y en desacuerdo con otros, como le debe de pasar a muchos, pero igual quiero dar mi punto de vista, si de algo sirve.

El SQL actualmente deber铆a ser la herramienta a utilizar en nuestros desarrollos, y hablo del lenguaje en si, sin pensar en el motor que lo utilice ni la herramienta que utilicemos para trabajarlo, ya que sus diferencias tendran, per lo basico lo tienen todos, las cuatro famosas instrucciones: SELECT, INSERT, UPDATE y DELETE

Pero si la situaci贸n es la de Alfredo Arteaga, para no tirar tantos a帽os de desarrollo pues estan las opciones de los RDD's que emulan los comandos de las DBF's para atacar dichos motores de bases de datos.

Si nosotros sabemos utilizar SQL para obtener datos de los motores de bases de datos, ya tenemos una de las capas principales para desarrollar cualquier proyecto robusto, y nos da la ventaja de hacerlo con cualquier motor de base de datos, ya sea MySQL, SQL Server, Oracle, DB2, Firebird, PostgreSQL, etc.,etc. de los cuales unos son gratis, otros no, pero igual tiene su version express.

Herramientas para utilizar SQL con (x)Harbour y FiveWin, pues ya tenemos y algunas las han mensionado en este hilo, y hasta ejemplos ha puesto ya, solo quiero aclarar unas cosas, ya que Rafa mensionaba Eagle1 y TMySql, y no miraba ninguna diferencia, pero si no estoy mal, la diferencia es que Eagle1 ataca MySql sin necesidad de generar un conecci贸n ODBC, ya que lo hace a traves de una DLL de comunicaci贸n propia de MySql.

Pero estas dos herramientas solo sirve para MySQL, y los otros motores? pues como bien dice Biel o Adolfo, esta ADO y AdoBase,pero igual, si no tenemos la base de SQL de nada nos servira.

En fin, a lo que quiero llegar es que si queremos pasarnos a SQL, olvidemonos de las DBF's y de los "USE" y de los RDD's, y aprendamos el SQL como tal, y esto cuesta debido a tanto a帽o de estar con ellos, pero el esfuerzo hay que hacerlo.

Pero igual, no solo de SQL necesitamos para desarrollar nuestras aplicaciones en estos d铆as, como ya dec铆a anteriormente, solo es una de las capas del desarrollo, y que pasa despues con la reporter铆a (PDF's), o una herramienta para Internet (Html, Web Services, ASP, etc.), y el muy comentado y deseado IDE pues.

Aca dependemos del trabajo de FiveTech, y varias veces se ha escrito por aca sobre lo mismo, pero Antonio nunca ha dado una respuesta a estos temas, y muchos de aca, como dice Carlos Gallego, ya le hemos entrado a FiveWin + (x)Harbour, y creo que hemos dado nuestra lealtad a FiveTech de seguir actualizando las versiones de FiveWin, pero siempre vemos en las "Whats New" que son arreglos o mejoras al lo que ya se tiene (pero casi siempre son arreglos) y nunca nada de lo que se hablado en este hilo:

  • Herramienta para Acceso directo a motores SQL
  • Herramienta para generar reportes (o reporteador grafico)
  • Herramienta para desarrollo de internet
  • IDE (Que es lo unir铆a todo)

Pero por algo se debe de empezar, y por eso apoyo lo de crear un Foro de SQL, pero en espa帽ol, y si se quiere otro en Ingles, etc., para poner nuestras diferentes dudas y ayudas para entrarnos a esto del SQL.

Bueno, espero no molestar a nadie con mis comentarios.

Saludos.

Carlos Sincuir.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Ayuda con Informix - Disculpen que insista
Posted: Sat Sep 06, 2008 11:21 PM

Por nuestra parte vamos a investigar la posibilidad de realizar un RDD tipo SQLRDD pero que sea de c贸digo abierto y gratuito, con la idea de que entre todos lo afinemos y que nuestras aplicaciones, desarrolladas durante a帽os, se puedan reutilizar.

El ADORDD, es util para procesos simples, pero ha demostrado las limitaciones del ADO para emular un RDD completo. Es decir, sirve para operaciones b谩sicas, pero no permite cambiar de DBFCDX (por ejemplo) a ADORDD, recompilar y listo.

regards, saludos

Antonio Linares
www.fivetechsoft.com