Quiero comenzar con sqlite

Re: Quiero comenzar con sqlite

Postby MarioG » Thu Aug 06, 2020 1:28 pm

Buen dia Crsitobal

oCn := FW_OpenAdoConnection( cdb )

if oCn == nil
? "failed"
return nil
endif
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Quiero comenzar con sqlite

Postby MarioG » Thu Aug 06, 2020 1:29 pm

Cristobal;
También leí un post tuyo sobre pasar la .dll a .lib
Eso no lo hice (o ya no es necesario)
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Quiero comenzar con sqlite

Postby MarioG » Thu Aug 06, 2020 2:29 pm

MarioG wrote:Buen dia Crsitobal

oCn := FW_OpenAdoConnection( cdb )

if oCn == nil
? "failed"
return nil
endif


Cristobal... resuelto!!
Al parecer tenía una dll errónea.
Instalé las de las Contribuciones de Harbour y salió andando

muchas gracias por interesarte!
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Quiero comenzar con sqlite

Postby MarioG » Thu Aug 06, 2020 4:49 pm

nageswaragunupudi wrote:If you have installed sqlite odbc driver and want to use ODBC/ADO, FWH makes it EXTREMELY simple to use Sqlite3.
You do not have to know anything other than simple FWH ado functions, which we must be already using for other ADO databaes.

Here is a simple program:
Code: Select all  Expand view  RUN
#include "fivewin.ch"

function Main()

   local cdb := "testsqlite3.db"
   local ocn, ors, cSql

   oCn := FW_OpenAdoConnection( cdb )
   if oCn == nil
      ? "failed"
      return nil
   endif

   FW_AdoImportFromDBF( ocn, "c:\fwh\samples\customer.dbf" )

   oRs   := FW_OpenRecordSet( oCn, "customer" )

   XBROWSER oRs FASTEDIT TITLE "SQLITE3 DATABASE TABLE"

   oRs:Close()
   ocn:close()

return nil
 

This program connects to the database if it exists and otherwise creates a new database and connects.
To use sqlite, you do not need to learn anything more than this and you can start working straight from the next minute.


Siguiente paso...
Si no tengo creada una DB como me conecto?
Lo que deseo es hacer DBCREATE DATABASE desde código.
O sea conectarme sin pasar la var. cdb, como arriba en FW_OpenAdoConnection( cdb )
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Quiero comenzar con sqlite

Postby MarioG » Thu Aug 06, 2020 5:07 pm

Disculpas!
No pregunte nada...
estoy un poco mareado.
Gracias por leer!
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Quiero comenzar con sqlite

Postby gabo » Fri Aug 07, 2020 11:53 pm

Este es mi proyecto harbour + gtwvw (Obviamente tienes que crear SQLite)
con el codigo anterios si la DB no existe se crea..
Saludos!

El proyecto
og.hbp
Code: Select all  Expand view  RUN

-iinclude
-inc
-oOreganoGourmet
-run

source\OREGANOGOURMET.PRG
...
...
...
...
source\FunTools\WINTOOLS.C
source\FunTools\CRYPT.C
source\FunTools\BLOWFISH.C

Resource\OG_Harbour.rc                                                                              
 

el make hbmk.hbm

Code: Select all  Expand view  RUN

#
# $Id: hbmk.hbm 13358 2009-12-22 02:50:24Z vszakats $
#

E:/ToolsDeveloper/harbour-3.0.0/examples/gtwvw/gtwvw.hbc

# NOTE: Disabled until test code is cleaned/fixed.
#-w3 -es2

-w1 -es2

-lhbxpp
-lhbwin
-lhbct
-lace32
-lrddads
-lhbsqlit3
-lsqlite3
-lE:\ToolsDeveloper\tdolphin\lib\HARBOUR\MINGW32\libdolphin.a
-lE:\ToolsDeveloper\tdolphin\lib\mysql\libmysql.a
-lxhb
 
gabo
 
Posts: 128
Joined: Tue Jan 03, 2006 8:31 pm

Re: Quiero comenzar con sqlite

Postby MarioG » Sat Aug 08, 2020 12:29 pm

Buen dia Gabo
Gracias por tu aporte!
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Quiero comenzar con sqlite

Postby MarioG » Sun Aug 09, 2020 2:51 pm

Buenos dia!
En un tabla, definida asi:
Code: Select all  Expand view  RUN
local cSQL := "CREATE TABLE IF NOT EXISTS " + cTabla  + ;
              "( 'ID'          INTEGER UNIQUE,"          + ;
                "'MGAPP'       CHAR(15) NULL, "       + ;
                "'VERSION'     CHAR(30) NULL, "       + ;
                "PRIMARY KEY('ID' AUTOINCREMENT) )"
 

Hago lo siguiente para Insertar:
Code: Select all  Expand view  RUN
local cInsert:= "INSERT INTO " +cTabla +" " + ;
                             "(ID,MGAPP,VERSION) " + ;
                      "VALUES (" + ;
                              "NULL," + ;      // FW_ValToSQL( 0 )  // "," lo comentado son otras formas probadas
                              "'mgSQL3'," + ;
                              "'08.20 Build(0000)' )"

   oConn:Execute( cInsert )
 

Ocurre que en el campo ID; ingresando: NULL en el campo ID; el registro se agrega
Aunque, me devuelve el mensaje: ADO ERROR UNKNOW.
Al capturar el error me informa:
Operation: +
Description: Error de argumento
Obviamente que chequeada la var cInsert, esta correcta...pero no encuentro lo que hago mal
Cual es mi error?

Gracias!
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Quiero comenzar con sqlite

Postby nageswaragunupudi » Tue Aug 11, 2020 5:55 am

Code: Select all  Expand view  RUN
#include "fivewin.ch"

function Main()

   local cdb := "testsqlite3.db"
   local ocn, ors, cSql

   FW_SetUnicode( .t. )

   oCn := FW_OpenAdoConnection( cdb )
   if oCn == nil
      ? "failed"
      return nil
   endif

   if FW_AdoTableExists( "TEST1", oCn )
      oCn:Execute( "DROP TABLE TEST1" )
   endif

TEXT INTO cSql
CREATE TABLE TEST1 (
   ID INTEGER PRIMARY KEY  AUTOINCREMENT,
   MGAPP    VARCHAR(15),
   VERSION  VARCHAR(30)
   )
ENDTEXT

   oCn:Execute( cSql )

   cSql  := "INSERT INTO TEST1 ( ID, MGAPP, VERSION ) VALUES ( NULL, 'mgSQL3', '08.20 Build(0000)' )"

   oCn:Execute( cSql )

   oRs   := FW_OpenRecordSet( oCn, "select * from test1" )
   xbrowser fwadostruct( ors )
   XBROWSER oRs

   oRs:Close()
   ocn:close()

return nil
 


Image
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10648
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Quiero comenzar con sqlite

Postby MarioG » Tue Aug 11, 2020 3:59 pm

Many Thank Mr. Rao
My chain of datas is many long that my sample; so I've an error in ohter side (field)
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Quiero comenzar con sqlite

Postby nageswaragunupudi » Tue Aug 11, 2020 8:44 pm

To build a reliable sql statement, try to use
Code: Select all  Expand view  RUN

cSql := SQL INSERT INTO <table> ( fld1,fld2,... ) VALUES ( list of harbour variables )
 

This gives a properly formatted SQL statement.
You may give it a try.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10648
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Quiero comenzar con sqlite

Postby MarioG » Tue Aug 11, 2020 10:19 pm

Many thanks Mr.Rao
Thats all OK now
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Quiero comenzar con sqlite

Postby MarioG » Wed Aug 26, 2020 10:04 pm

Hola
Necesito ayuda en lo siguiente
Cuando creo la DB luego, creo la Tabla e Inserto un registro
Todo esto ocurre sin problemas
Luego recupero un registro así:
Code: Select all  Expand view  RUN
local cSelect:= "SELECT Count(ID) FROM " +::cTablaSys + " WHERE APPNAME='"+cAppName+"'"   // cAppName es el nombre del ejecutable que obviamente existe en la Tabla

   ::oRSDB:= FW_OpenRecordSet( ::oConDB, cSelect )

// Verifico asi:
   if !FW_AdoQueryResult( cSelect, ::oRSDB:ActiveConnection ) == 0
      ?  "ID", ::oRSDB:Fields( 'ID' ):Value
   end
 

y recibo este error:
Error description: (DOS Error -2147352567) WINOLE/1007 No se encontró el elemento en la colección que corresponde al nombre o el ordinal solicitado. (0x800A0CC1): ADODB.Recordset
Args:
[ 1] = C ID

Que puedo estar haciendo mal?
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Quiero comenzar con sqlite

Postby nageswaragunupudi » Wed Aug 26, 2020 11:22 pm

Obviously. There is no field by name "ID" in the result of the query "SELECT COUNT(ID) FROM .......... "
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10648
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Quiero comenzar con sqlite

Postby MarioG » Thu Aug 27, 2020 1:06 am

Mr Rao.
I'm very confused because this is the structure
And I tried with several fields; and they all return the same error
Image
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

PreviousNext

Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 67 guests