Página 1 de 1

Sqlite buscar y reemplazar

Publicado: 04 Abr 2010, 19:43
por Pablo2m
Hola:
Tengo una ¿tabla ?, la cual he creado asi :

Código: Seleccionar todo

SQLite_Exec($dbn,"CREATE TABLE blogspot (id INTEGER,bp TEXT, cantidad INTEGER, PRIMARY KEY (id), UNIQUE (bp) ON CONFLICT IGNORE);")
Como hago para ver si existe un item bp y si existe sumarle a cantidad un numero (digamos 1)

Gracias

Re: Sqlite buscar y reemplazar

Publicado: 05 Abr 2010, 00:29
por BasicOs
Hola, lo incluyes en el string a ejecutar algo parecido a :
http://dev.mysql.com/doc/refman/5.0/es/update.html
UPDATE items SET items.price=items.price+1 (se puede quitar items.)
WHERE items.id='adcdd'; ; condición

en http://www.programacionfacil.com/mysql:mysql_update
UPDATE nombretabla SET nomcolumna=nomcolumna+1 WHERE condicion ;

(UPDATE nombretabla SET nomcolumna=expresion WHERE condicion ;)
Mysql no es muy diferente a sqlite pero si lo deseas puedes comentar si hay diferencias, y contrastar como te quedó el code,

Salu22:)

Re: Sqlite buscar y reemplazar

Publicado: 05 Abr 2010, 01:17
por Pablo2m
Evidentemente no comprendo como es el asunto, cuando me meti con sqlite sospeche que esto pasaria, si no es mucha molestia ¿podrias indicarme que hacer?, arme un esqueleto de lo que intento

Código: Seleccionar todo

Func Afuera_wp ($meter)
	$Bandera= _SQLite_Exec ($dbn,"WHERE items.id='"$meter"'; condición" )
	If $Bandera  <> 0 then
   _SQLite_Exec ($DBN, "UPDATE wordpress SET cantidad=cantidad+1 WHERE condicion ")
	Else
	consolewrite(@CR &"Nombre del Wordpress: " & $meter )
    _SQLite_Exec($dbn,"INSERT INTO wordpress (wp,cantidad) VALUES ('"&$meter&"', 1);")
	EndIf
EndFunc

Re: Sqlite buscar y reemplazar

Publicado: 05 Abr 2010, 01:32
por Pablo2m
Andaba pensando que si es muy complicado lo podria hacer sin Sqlite, ¿Sqlite permite elementos repetidos?

Re: Sqlite buscar y reemplazar

Publicado: 05 Abr 2010, 01:56
por BasicOs
Permite elementos repetidos sin problemas, aunque puedes modificar esta propiedad al crear un indice más limitado, o bien en las propiedades.
No obstante no tiene tanto sentido tener datos exactamente iguales, iguales debes mirar algún manual para aprender un poco más sin problemas: :smt004 :smt004
Busca la palabra datos redundantes:
http://www.monografias.com/trabajos30/b ... atos.shtml
http://mit.ocw.universia.net/curso11208 ... re5-2.html

Más info aqui:
http://usuarios.multimania.es/cursosgbd/UD4.htm


Salu22:)

Re: Sqlite buscar y reemplazar

Publicado: 16 Abr 2010, 00:40
por Chefito
Pablo2m escribió:Como hago para ver si existe un item bp y si existe sumarle a cantidad un numero (digamos 1)
He utilizado el ejemplo de la ayuda de la función _SQLite_Exec y le he añadido una consulta que hace lo que tu quieres.

Código: Seleccionar todo

#include <sqlite.au3>
#include <sqlite.dll.au3>

Local $hQuery,$aRow
_SQLite_Startup()
ConsoleWrite("_SQLite_LibVersion=" &_SQLite_LibVersion() & @CRLF)
_SQLite_Open()
; Whithout $sCallback its an Resultless query
_SQLite_Exec(-1,"Create table tblTest (a,b int,c single not null);" & _
                "Insert into tblTest values ('1',2,3);" & _
                "Insert into tblTest values (34,5,-1);" & _
				"Insert into tblTest values (12,22,3);" & _
				"Insert into tblTest values (Null,5,6);")

_SQLite_Exec(-1,"update tblTest set b=b+1 where c=3") ; Si el campo c=3 entonces al campo b de los registros que coincidan con esta condición se le suma 1. 

$d = _SQLite_Exec(-1,"Select * From tblTest","_cb") ; _cb Will be called for each row
Func _cb($aRow)
	For $s In $aRow
		ConsoleWrite($s & @TAB)
	Next
	ConsoleWrite(@CRLF)
	; Return $SQLITE_ABORT ; Would Abort the process and trigger an @error in _SQLite_Exec()
EndFunc
_SQLite_Close()
_SQLite_Shutdown()
Con esta condición (c=3) coincide con dos registros, el 1º y 3º. Los campos b de estos registros son 2 y 22 respectivamente, a los que se le suma 1 quedando 3 y 23.
Te dejo un enlace con la documentación de sentencias sql para sqlite3: http://www.sqlite.org/lang.html

Espero haberte ayudado.

Saludos.