Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. Fui apagar a última mensagem que postei e acabei apagando o tópico acidentalmente, vou postar aqui o último script já com as funções que eu queria fazer quando criei o tópico pois talvez seja útil para outros que precisem da mesma coisa e aproveitando já deixo mais uma dúvida de como seria para carregar na memória um arquivo .bd do disco e depois fazer todas alterações necessárias durante o tempo que estiver usando sem salvar no disco. #include <SQLite.au3> #include <array.au3> Global $hQuery, $aRow, $sMsg, $sSql, $dados_linha Global $BASE_DB, $cod_cartela, $sorteado, $retarr _SQLite_Startup(@ScriptDir & "\sqlite3.dll") If Not FileExists("database.db") Then $dbn = _SQLite_Open("database.db") _SQLite_Exec($dbn, "CREATE TABLE Dados (Numeros);") For $i = 1 To 10 $dados = "PM-S" & $i & "=02 05 06 08 15 20 23 26 28 30 35 36 38 43 45 47 52 54 55 56 66 68 71 74 75 PM-Q" & $i & " 10" $sql = "INSERT INTO Dados VALUES('" & $dados & "');" ;_Base_Execute($sql) _SQLite_Exec($dbn, $sql) Next Else $dbn = _SQLite_Open("database.db") EndIf $cod_cartela = ' PM-S2002 ' $aResult = _SearchDatabase($cod_cartela); Procurando linha que tem o código da cartela (mostra apenas a linha que tem o código da cartela) If UBound($aResult) > 1 Then $dados_linha = $aResult[1][0]; guardar para gravar nas outras duas _SQLite_Exec($dbn, "DELETE FROM Dados WHERE Numeros= " & "'" & $aResult[1][2] & "'" & ";"); apaga a linha que tem o código da cartela _ArrayDisplay($aResult) Else MsgBox(4096, 'Sem informações', "Nenhuma informação foi encontrada!") EndIf $sorteado = Random(1, 75, 1) If $sorteado <= 9 Then $sorteado = " 0" & $sorteado & " " Else $sorteado = " " & $sorteado & " " EndIf _SQLite_Exec($dbn, "UPDATE Dados set Numeros= replace(numeros, '" & $sorteado & "', ' | ') where Numeros like '%" & $sorteado & "%'"); troca todos números por " | " $aResult = _SearchDatabase(" | "); Procurando linha que tem " | " (mostra todas as linha que tiveram os dados trocados) If UBound($aResult) > 1 Then _ArrayDisplay($aResult) _SQLite_Close() _SQLite_Shutdown() Func _SearchDatabase($sString) Local $sql, $sSql, $aTables, $aResult, $iState Local $tmp1, $tmp2 $sql = "SELECT Numeros, ""Dados"" AS ""table"", rowid FROM ""Dados""" $sSql = "SELECT * FROM (" & $sql & ") WHERE Numeros LIKE '%" & $sString & "%';" $iState = _SQLite_GetTable2d($dbn, $sSql, $aResult, $tmp1, $tmp2) If $iState <> $SQLITE_OK Then Return SetError(@error, 0, $iState) Else Return $aResult EndIf EndFunc ;==>_SearchDatabase
  3. Yesterday
  4. Viram @psol50 @MarceloFreixo @mariadorosario @ptbrasil ? https://t.co/td8OaVdO9h

  5. @missmorenab Que mulherão <3

  6. Eu n ireibdesustir do meu sonho de te esperar no altar

  7. Last week
  8. RT @rolealeatorio: BOTA OTRA CUZAO https://t.co/iGrkx75qQO

  9. @BrubzzzBru Come outro, a culpa passa

  10. @RBMonte @pedrodoria Cala boca protofascistinha de *****. Uma mulher foi executada seu lixo

  11. perfil visualizado por 8 pessoas https://t.co/M9xujXAnJ5

  12. @caiocarlini @Filpc @rosana Se o gelo for de boa qualidade (sem ar), ele demora muiiito pra derreter :) Ou pode op… https://t.co/mTtA75rGV9

  13. RT @sikerajr: https://t.co/ZXuR1F2w3j

  14. RT @mattstark256: The effect can now handle collisions and multiple photos #madewithunity #gamedev #vfx #polaroid https://t.co/NXKt8KGIcZ

  15. RT @sergiodireita1: A esquerda gosta de preto com coleira. https://t.co/waD3i0enpJ

  16. @alinnefanelli E é o reserva hein...

  17. @heinzeraa Aah boooom. Ja achei que tinha me esquecido

  18. @palmeirasptd Esse é o time se o treinador tiver coragem de barrar os titulares lombriguentos

  19. @AFS_Andrada @JoelPinheiro85 O problema é alguém ganhar mais dinheiro sobre seu órgão do que vc mesmo. Assim como j… https://t.co/Vz6MWx0Gze

  20. RT @MellMulataTudao: Bom dia Delícias! Comecei bem minha quinta 🍼💦🤭 Vídeo de agora agora kkkkkk https://t.co/QihDwJHxnp

  21. RT @MirandaSa_: EXCLUSIVO: O mistério dos R$ 2 bilhões do STF - Erro ou falcatrua? Achamos o dono da empresa envolvida (veja o vídeo) https…

  22. https://t.co/Nm2QmksA1b

  23. RT @31_turra: https://t.co/LlsNhEhi8a

  24. @tinhaqsernobr @GetVideoBot please

  25. SQLite Básico

    @manimal o problema não era o ambiente e sim o nome da dll, agora seu exemplo funcionou perfeitamente agora preciso apenas acessar o banco de dados com o se os dados das colunas estivessem gravados em um arquivo ini, vou postar esta dúvida no outro tópico que criei para ver se vc consegue ajudar.
  26. SQLite Básico

    @Belini Não entendi a questão de não conseguir abrir o banco de dados. Como assim? Preste atenção que um arquivo de banco de dados no SQLite (ou outro bando de dados) não é como um arquivo convencional! A melhor analogia que podemos utilizar é que o "arquivo físico do banco de dados" é como se fosse um arquivo tipo ZIP, por exemplo. Como arquivo ele é inútil, mas dentro dele é que tem os arquivos que precisamos. Da mesma forma funciona um arquivo de banco de dados. Ao criarmos um arquivo "físico" não podemos simplesmente sair utilizando o mesmo, como se fosse um arquivo TXT. É necessário criar as TABELAS dentro do arquivo. Daí finalmente, pode-se incluir, alterar, deletar ou consultar os dados. A maioria das pessoas (eu inclusive) quando comecei com banco de dados, não sabia disso. Tinha uma noção, mas só na prática que fui entender corretamente o SQLite. Hoje não abro mais mão de trabalhar com ele. Finalmente, pela mensagem de erro que vc postou antes: Eu diria que com 99% de certeza que vc está utilizando a DLL errada para o ambiente que vc está trabalhando. O comando de inicialização do SQLite - comando _SQLite_Startup() - é um saco de trabalhar porque ele é pouco intuitivo. Quando dá erro, todas as operações subsequentes não funcionam. No seu caso, a primeira coisa a identificar é o ambiente! É 32 ou 64 bits? E se vc está forçando seu script a trabalhar em qual ambiente? Segunda coisa: os parâmetros do _SQLite_Startup(). Tem duas situações: 1) se não passar nenhum nome como parâmetro ele assume obrigatoriamente os nomes SQLITE3.DLL para ambiente 32 bits e SQLITE3_X64.DLL para ambiente 64 bits quaisquer outros nomes NÃO FUNCIONAM! Dá erro e não inicializa o SqLite! Que acaba dando a msg que vc postou! Outra coisa muito importante, estes arquivos DEVEM estar preferencialmente na mesma pasta do script. A sequência de procura das DLLs é @ScriptDir, @SystemDir, @WindowsDir e @WorkingDir. Quando não acha na pasta do script, vai na pasta @systemdir, depois @windowsdir e finalmente na @workingdir. E novamente os nomes são obrigatoriamente os descritos acima! 2) se passar o nome da DLL a ser aberta e o ambiente for 64 bits, o próprio AutoIt vai acrescentar o sufixo _X64 em qualquer nome que for passado! Isto é um pseudo-bug do AutoIt! Exemplo: _SQLite_Startup("F:\MeuArquivo.Dll") Neste caso, se o ambiente for 32 bits e o arquivo "MeuArquivo.Dll" existir no drive F: a SQLite será inicializada. MAS se for ambiente 64 bits, o sufixo _X64 será incluído automaticamente (pseudo-bug do AutoIt) e o arquivo a ser procurado será o MeuArquivo_X64.Dll, ocasionando um erro porque o arquivo especificado como argumento não existe (ou não foi encontrado). Acredito que este seja o motivo do erro no seu caso. Apesar disto tudo estar escrito no 1o post, acho que não ficou bem claro! Falha minha. Peço desculpas por isso! E por último, quando falamos em forçar o ambiente (32 ou 64 bits) é muito importante que isto esteja bem claro desde o começo em nossos scripts, pois gera uma fonte interminável de dores de cabeça. Independente do ambiente que vc trabalha (não confundir com o ambiente onde vai executar o script depois de pronto), é muito esclarecedor para o script (e para nós mesmos) que tenhamos certeza de onde estamos pisando! Eu pessoalmente utilizo a diretriz #AutoIt3Wrapper_UseX64=n Para informar ao AutoIt qual é o meu ambiente de desenvolvimento. Sempre em 32 bits! Assim, eu garanto que, se eu compilar para teste ou compilar final meu script sempre vai rodar em 32 bits em qualquer ambiente (32 ou 64), e por tabela as DLL associadas também devem ser em 32 bits. Isto interfere um monte no ambiente que está sendo executado, como na macro @ProgramFiles, que pode ser C:\Program Files ou C:\Program Files (x86) ou DLLs a serem carregadas,. Até mesmo a pasta do sistema @SystemDir é afetada, pois pode ser tanto C:\Windows\System32 ou C:\Windows\SysWOW64 Então se o seu script vai rodar em 32 ou 64 bits, tenha certeza que fazer as modificações adequadas no código para evitar confusão depois! Utilize a macro @AutoItX64 par garantir isso. Depois que eu percebi este detalhe e passei a controlar o ambiente, e não deixar por conta, tive trocentos problemas a menos com DLLs e arquivos. Por exemplo, ao procurar por atualização de um arquivo no servidor, sendo que o seu script diferencia o ambiente: Local $sArquivo = "MeuArquivo.Dll" If @AutoItX64 Then $sArquivo = "MeuArquivo64.Dll" If not BAIXAR_ARQUIVO($sArquivo) Then ConsoleWrite('Erro" & @CRLF) Boa sorte!
  27. Minha namorada faz isso nunca, ela tá nem aí 🤷🏻‍♂️ https://t.co/sIu9UgEBHy

  28. SQLite Básico

    Encontrei um exemplo no forum americano que está funcionando e vou fazer testes com ele. #include <GUIConstants.au3> #include <EditConstants.au3> ;~ #include <SQLite.au3> ;~ #include <SQLite.dll.au3> #include "SQLite.au3" #include "SQLite.dll.au3" $form_num = 1 #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Sqlite GUI test", 223, 359, 267, 119) $count = GUICtrlCreateInput($form_num, 144, 10, 33, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY)) $b_right = GUICtrlCreateButton(">", 176, 8, 27, 25, 0) $b_left = GUICtrlCreateButton("<", 120, 8, 27, 25, 0) $lname = GUICtrlCreateLabel("Name:", 8, 48, 48, 17) $iname = GUICtrlCreateInput("", 64, 48, 145, 21) $ladress = GUICtrlCreateLabel("Adress:", 8, 88, 45, 17) $iadress = GUICtrlCreateInput("", 64, 88, 145, 21) $iemail = GUICtrlCreateInput("", 64, 128, 145, 21) $lemail = GUICtrlCreateLabel("E-mail:", 8, 128, 46, 17) $lother = GUICtrlCreateLabel("Other:", 8, 168, 46, 17) $eother = GUICtrlCreateEdit("", 64, 168, 145, 121) $badd = GUICtrlCreateButton("Add", 48, 312, 75, 25, 0) $bdel = GUICtrlCreateButton("Delete", 128, 312, 75, 25, 0) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### _SQLite_Startup() If NOT FileExists("database.db") Then $dbn=_SQLite_Open("database.db") _SQLite_Exec($dbn,"CREATE TABLE datas (id,name,adress,email,other);") Else $dbn=_SQLite_Open("database.db") EndIf MsgBox(4096, '', $dbn) dataquery($form_num) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE progend() Case $b_right $form_num = $form_num + 1 GUICtrlSetData($count,$form_num) dataquery($form_num) Case $b_left If $form_num == 1 Then $form_num = 1 GUICtrlSetData($count,$form_num) Else $form_num = $form_num - 1 GUICtrlSetData($count,$form_num) dataquery($form_num) EndIf Case $badd IF GUICtrlRead($iname) == "" Then MsgBox(0,"ERORR","Empty name!") Else dataadd($form_num) EndIf Case $bdel datadel($form_num) EndSwitch WEnd Func progend() _SQLite_Close() _SQLite_Shutdown() Exit EndFunc Func dataadd($id) Local $retarr $str1 = GUICtrlRead($iname) $str2 = GUICtrlRead($iadress) $str3 = GUICtrlRead($iemail) $str4 = GUICtrlRead($eother) _SQLite_QuerySingleRow($dbn,"SELECT id FROM datas WHERE id='"&$id&"'",$retarr) If $retarr[0] <> "" Then _SQLite_Exec($dbn,"UPDATE datas SET name='"&$str1&"', adress='"&$str2&"',email='"&$str3&"',other='"&$str4&"' WHERE id='"&$id&"'") Else _SQLite_Exec($dbn,"INSERT INTO datas (id,name,adress,email,other) VALUES ('"&$form_num&"','"&$str1&"','"&$str2&"','"&$str3&"','"&$str4&"');") EndIf EndFunc Func dataquery($id) GUICtrlSetData($iname,"") GUICtrlSetData($iadress,"") GUICtrlSetData($iemail,"") GUICtrlSetData($eother,"") Local $retarr If _SQLite_QuerySingleRow($dbn,"SELECT * FROM datas WHERE id='"&$id&"'",$retarr) == $SQLITE_OK Then If $retarr[0] == "" Then ;MsgBox(0,"ERROR","Query error!") Else GUICtrlSetData($iname,$retarr[1]) GUICtrlSetData($iadress,$retarr[2]) GUICtrlSetData($iemail,$retarr[3]) GUICtrlSetData($eother,$retarr[4]) EndIf EndIf EndFunc Func datadel($id) Local $retarr GUICtrlSetData($iname,"") GUICtrlSetData($iadress,"") GUICtrlSetData($iemail,"") GUICtrlSetData($eother,"") _SQLite_QuerySingleRow($dbn,"SELECT id FROM datas WHERE id='"&$id&"'",$retarr) If $retarr[0] <> "" Then _SQLite_Exec($dbn,"DELETE FROM datas WHERE id='"&$id&"'") EndIf EndFunc
  1. Load more activity
×