Consulta sobre TDolphin

Re: Consulta sobre TDolphin

Postby Marcelo Roggeri » Tue Apr 03, 2012 9:31 pm

Hola buenas tardes, tengo una consulta, estoy queriendo crear las tablas desde código usando el ejemplo bldtbls.prg de la carpeta samples.
El tema es que se me cuelga la app.
Es una tabla de clientes, relacionada a la tabla de localidades y esta ultima a la tabla de provincias.
La pregunta es si esta bien o hay algo que yo no vea que este haciendo mal. Desde ya gracias
Saludos desde Argentina.
Code: Select all  Expand view  RUN

PROCEDURE CreaBD(oServer)
          LOCAL cQuery
          LOCAL aQuery    := Array( 5 )
          *-----------------------------------------------------------------
          aQuery[ 1 ] = "DROP TABLE IF EXISTS provincia"
          aQuery[ 2 ] = "DROP TABLE IF EXISTS localidad"
          aQuery[ 3 ] = "DROP TABLE IF EXISTS clientes"
          *-----------------------------------------------------------------
          //provincia
          aQuery[ 4 ] =  "CREATE TABLE provincia("
          aQuery[ 4 ] += "pcia_id INT NOT NULL AUTO_INCREMENT, "
          aQuery[ 4 ] += "nombre VARCHAR(50)  NOT NULL, "
          aQuery[ 4 ] += "PRIMARY KEY (pcia_id)) ENGINE = InnoDB"
          *-----------------------------------------------------------------
          //localidad
          aQuery[ 5 ] = "CREATE TABLE localidad("
          aQuery[ 5 ] += "loc_id INT NOT NULL AUTO_INCREMENT, "
          aQuery[ 5 ] += "nombre VARCHAR(50)  NOT NULL, "
          aQuery[ 5 ] += "codigo_postal VARCHAR(4), "
          aQuery[ 5 ] += "pcia_id INT, "
          aQuery[ 5 ] += "PRIMARY KEY (loc_id) INDEX (pcia_id),"
          aQuery[ 5 ] += "FOREIGN KEY (pcia_id) REFERENCES provincia (pcia_id), "
          aQuery[ 5 ] += "ON DELETE NO ACTION, "
          aQuery[ 5 ] += "ON UPDATE CASCADE) ENGINE = InnoDB"
          *-----------------------------------------------------------------
          //clientes
          cQuery = "CREATE TABLE clientes("
          cQuery += "id INT NOT NULL AUTO_INCREMENT, "
          cQuery += "nombre VARCHAR(100)  NOT NULL, "
          cQuery += "direccion VARCHAR(50), "
          cQuery += "loc_id INT, "
          cQuery += "saldo DECIMAL(15), "
          cQuery += "PRIMARY KEY (id) INDEX (loc_id), "
          cQuery += "FOREIGN KEY (loc_id) REFERENCES localidad (loc_id), "
          cQuery += "ON DELETE NO ACTION, "
          cQuery += "ON UPDATE CASCADE) ENGINE = InnoDB"
          *-----------------------------------------------------------------
          //we dont need transaction here
          oServer:MultiQuery( aQuery, .F., {| nIdx | Qout( "Query " + StrZero( nIdx, 2 ) + " OK" ) } )
          oServer:Execute( cQuery )
          *-----------------------------------------------------------------
RETURN
 
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 342
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Consulta sobre TDolphin

Postby Daniel Garcia-Gil » Tue Apr 03, 2012 10:46 pm

Hola

sabes cual es el ultimo query que logra ejecutar antes de la ruptura?
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Consulta sobre TDolphin

Postby Marcelo Roggeri » Wed Apr 04, 2012 1:07 am

Hola Daniel, el ultimo query es el 4 ese si se ejecutaba, el quinto no lo hacia porque habia un error en la linea donde creo la relacion, habia de mas unas comas (gracias Mauricio de Maussion) quien vio tal detalle.
Gracias Daniel, y sigo avanzando de a poquito.
Pego el codigo nuevamente por si a alguien le pasa lo mismo.
Saludos Marcelo
Code: Select all  Expand view  RUN

PROCEDURE CreaBD(oServer)
          LOCAL cQuery
          LOCAL aQuery := Array( 5 )
          *-----------------------------------------------------------------
          aQuery[ 1 ] := "DROP TABLE IF EXISTS provincia"
          aQuery[ 2 ] := "DROP TABLE IF EXISTS localidad"
          aQuery[ 3 ] := "DROP TABLE IF EXISTS clientes"
          *-----------------------------------------------------------------
          //provincia
          aQuery[ 4 ] := "CREATE TABLE provincia("
          aQuery[ 4 ] += "pcia_id INT UNSIGNED NOT NULL AUTO_INCREMENT, "
          aQuery[ 4 ] += "nombre VARCHAR(50) NOT NULL, "
          aQuery[ 4 ] += "PRIMARY KEY (pcia_id)) ENGINE = InnoDB"
          *-----------------------------------------------------------------
          //localidad
          aQuery[ 5 ] := "CREATE TABLE localidad("
          aQuery[ 5 ] += "loc_id INT UNSIGNED NOT NULL AUTO_INCREMENT, "
          aQuery[ 5 ] += "nombre VARCHAR(50) NOT NULL, "
          aQuery[ 5 ] += "cod_pos VARCHAR(4), "
          aQuery[ 5 ] += "pcia_id INT UNSIGNED, "
          aQuery[ 5 ] += "PRIMARY KEY (loc_id), INDEX (pcia_id),"
          aQuery[ 5 ] += "FOREIGN KEY (pcia_id) REFERENCES provincia (pcia_id) "
          aQuery[ 5 ] += "ON DELETE NO ACTION "
          aQuery[ 5 ] += "ON UPDATE CASCADE) ENGINE = InnoDB"
          *-----------------------------------------------------------------
          //clientes
          cQuery := "CREATE TABLE clientes("
          cQuery += "id INT UNSIGNED NOT NULL AUTO_INCREMENT, "
          cQuery += "nombre VARCHAR(100) NOT NULL, "
          cQuery += "direccion VARCHAR(50), "
          cQuery += "loc_id INT UNSIGNED, "
          cQuery += "saldo DECIMAL(15), "
          cQuery += "PRIMARY KEY (id), INDEX (loc_id), "
          cQuery += "FOREIGN KEY (loc_id) REFERENCES localidad (loc_id) "
          cQuery += "ON DELETE NO ACTION "
          cQuery += "ON UPDATE CASCADE) ENGINE = InnoDB"
          *-----------------------------------------------------------------
          //we dont need transaction here
          oServer:MultiQuery( aQuery, .F., {| nIdx | Qout( "Query " + StrZero( nIdx, 2 ) + " OK" ) } )
          oServer:Execute( cQuery )
          *-----------------------------------------------------------------
RETURN
 
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 342
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Consulta sobre TDolphin

Postby Marcelo Roggeri » Sun Apr 08, 2012 11:27 pm

Hola de nuevo por aca queriendo consultarles como se hace una busqueda en un browse segun la palabra ingresada en un get y que esa palabra este en cualquier parte del campo, osea, si en una lista de clientes tengo uno que se llama JUAN CARLOS LOPEZ, que al ingresar la palabra LOPEZ me lo filtre igual mas alla de que la palabra en el browse empieza por el nombre.
Esto actualmente lo hago con SET FILTER en dbf
Saludos a todos y espero que hallan pasado unas Felices Pascuas
Marcelo
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 342
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Consulta sobre TDolphin

Postby Willi Quintana » Mon Apr 09, 2012 2:55 am

Hola, prueba asi:
Code: Select all  Expand view  RUN

REDEFINE GET oGet VAR cBusca .......

cBusca := ALLTRIM(cBusca)

cQry := "SELECT clientes.nombres FROM clientes WHERE clientes.nombres LIKE '%" + cBusca + "%' ORDER BY clientes.nombres"
oDatos := oServer:Execute( cQry )

xbrowse(oDatos, "Criterio de busqueda = " + cBusca )

 
User avatar
Willi Quintana
 
Posts: 1020
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Consulta sobre TDolphin

Postby Marcelo Roggeri » Mon Apr 09, 2012 10:25 pm

Hola Willi, entendi lo que sugeriste pero en mi consulta me da error esas lineas,
Code: Select all  Expand view  RUN
        cQry := "SELECT localidad.id_localidad,localidad.nombre AS nomLoc,localidad.Codigo_Postal,provincia.nombre AS nomPro,provincia.id_provincia "
         cQry += "FROM localidad, provincia "
         cQry += "WHERE nomLoc LIKE '%" + cBusca + "%' "
         cQry += "AND localidad.id_provincia=provincia.id_provincia "
         cQry += "ORDER BY nomLoc"
 

Ten en cuenta willi que recien estoy comenzando con mysql y si cometo un error grotezco pido mis disculpas
Saludos
Marcelo
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 342
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Consulta sobre TDolphin

Postby Willi Quintana » Mon Apr 09, 2012 11:50 pm

Hola, prueba asi;
Code: Select all  Expand view  RUN

cQry := "SELECT localidad.id_localidad, localidad.nombre AS nomLoc, localidad.Codigo_Postal, provincia.nombre AS nomPro, provincia.id_provincia "
cQry += "FROM localidad, provincia "
cQry += "WHERE localidad.nombre LIKE '%" + cBusca + "%' "
cQry += "AND localidad.id_provincia = provincia.id_provincia "
cQry += "ORDER BY localidad.nombre"
 
User avatar
Willi Quintana
 
Posts: 1020
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Consulta sobre TDolphin

Postby Marcelo Roggeri » Tue Apr 10, 2012 7:59 pm

Hola Willi, bueno paso el ejemplo de provincia que es mas pequeño y basico el codigo por solo tener dos campos, el id_provincia y el nombre.

Code: Select all  Expand view  RUN

PROCEDURE brwProvincias(oServer,oWnd)
...
          cQry := "SELECT * FROM provincia ORDER BY nombre"
          DEFINE QUERY oQry cQry

          REDEFINE GET oSearch VAR cSearch ID 4002 OF oDlg FONT ofntGet UPDATE;
                        ON CHANGE ( Self:Assign(),;
                                    BuscamosP(cSearch,@cQry,oQry,oServer,oBrw),;
                                    oBrw:Refresh() )
...
RETURN
****************************************************************************
FUNCTION BuscamosP(cSearch,cQry,oQry,oServer,oBrw)
         LOCAL cBusca := ALLTRIM(cSearch)
         cQry := "SELECT * "
         cQry += "FROM provincia "
         cQry += "WHERE provincia.nombre LIKE '%" + cBusca + "%' "
         cQry += "ORDER BY nombre"

         oQry := oServer:Execute( cQry )
         oBrw:Refresh()

RETURN NIL
****************************************************************************
 


Este es el error:
Error MYSQL/2014 Commands out of sync; you can't run this command now
Un abrazo Marcelo
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 342
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 85 guests