Jump to content

Belini

Administradores (Adm)
  • Content count

    2,057
  • Joined

  • Last visited

  • Days Won

    105

Belini last won the day on December 19 2019

Belini had the most liked content!

Community Reputation

237 Excelente!

About Belini

  • Rank
    Administrador
  • Birthday 08/25/1968

Profile Information

  • Gender
    Male
  • Location
    Minas Gerais

Recent Profile Visitors

11,473 profile views
  1. @Manimal testei usano o comando "VACUUM INTO" e melhorou demais a velcidade para criar o banco de dados, obrigado mais uma vez!
  2. Fiz testes usando a primeira opção e foi super rápido depois abri o banco de dados original no DB Browser for SQLite.exe e realmente ele permaneceu inalterado ou seja funcionou usando a cópia na memória e muitas vezes mais rápido que antes, agora preciso apenas melhorar a velocidade de criação do banco de dados quando os números são sorteados, estou gravando linha por linha vc tem alguma sugestão de como armazenar e gravar várias de uma vez só ou outra solução para diminuir o tempo de criação do banco de dados?
  3. @manimal o que eu preciso é clonar o banco de dados para memória e fazer alterações nele apenas na memória também, não preciso gravar mais nada fisicamente depois que ele estiver carregado na memória porém preciso substituir os números sorteados em todo banco de dados que estiver na memória o outro bd será aberto físicamente quando precisar fazer alterações e o que fizer será salvo nos 2 fisicamente mas isto é fora da hora do sorteio, quando inicia o sorteio os 2 serão fechados com todas alterações que foram feitas e será carregada uma cópia do banco 2 apenas para conferencia dos números sorteados, ou seja terei 2 banco de dados sendo que um contém os dados das cartelas que não vendeu e o outro dados das vendidas aí quando vou cadastrar cartelas abro os dois fisicamente e faço alterações neles, quando inicia o sorteio os dois são fechados e preciso carregar as informações do banco 2 na memória para conferir os números que forem sendo sorteados sendo que preciso substituir o número sorteado por " | " de todo banco de dados mas apenas na memória, vc pode postar um exemplo de como usa o seu banco de dados na memória?
  4. @manimal eu gero as cartelas para serem vendidas antecipadamente e uso os dados que gravei em arquivo ini ou no caso agora no banco de dados para fazer a conferência de todas que foram vendidas e desta forma ninguém passa batido e nem precisa estar presente para concorrer por isto preciso já ter o banco de dados pronto sendo que no primeiro estarão as que não formam vendidas pois apaga a linha dele toda vez que uma cartela é cadastrada e nos outros dois tem todas que estão concorrendo sendoa número 2 usada para conferir os números que sairam e a 3 apenas para consulta, eu sei que se eu não indicar um banco de dados ele será criado na memória só que não quero criar e sim carregar um que já tenho salvo no disco e depois usar ele na memória sem salavar nada no disco. EDITADO: PM-S e PM-Q é a identificação da cartela "S" é quando tem 6 sorteios na mesma cartela e Q" é quando tem apenas 4 sorteios o que vem depois é número daquela cartela e usando este código tenho aceso a todos números contidos naquela cartela para poder fazer a conferência dela.
  5. 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
  6. 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.
  7. 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
  8. SQLite Básico

    Baixei a última versão 3.3.14.5 mas o erro persiste. >Running:(3.3.14.5):C:\Arquivos de programas\AutoIt3\autoit3.exe "D:\Novo(a) AutoIt v3 Script.au3" +>Setting Hotkeys...--> Press Ctrl+Alt+Break to Restart or Ctrl+BREAK to Stop. Utilizando D:\SQLITE3_302700200.DLL v0 Erro 21 ao abrir banco de dados
  9. SQLite Básico

    Pode até ser sim vou usar uma versão mais recente prá ver
  10. SQLite Básico

    Estou tentando criar e ler um banco de dados e seguindo as instruções postadas aqui fiz testes mas fiquei parado logo no início pois dá uma mensagem de erro "Erro 21 ao abrir banco de dados", pesquisei e ví que o código de erro 21 é biblioteca incorreta mas não sei como corrigir isto pois baixei os arquivos do link indicado no tutorial e ao meu ver a versão da dll e data de modificação estão corretas, alguém sabe como resolver isto?
  11. Pode ser isto então, vou fazer o teste pra ver.
  12. Não apareceu nenhum texto na tela usando este comando também.
  13. Encontrei a função Stretch em VB mas não funcionou em Autoit, alguém conseguiu deixar a tela sem tarjas usando esta UDF para winmm.dll? ' Videobild stretchen Public Sub mciSetVideoStretch() On Error Resume Next mciSendString "window TempMCI stretch", 0, 0, 0 End Sub _mciSendString("window " & $sAlias & " stretch"); Autoit
  14. Incorporar libmpv no programa

    Prá mim também tá complicado mas não posso deixar de dar atenção aos clientes que usam o meu programa aí sempre que sobra um tempo tô pegando nisto prá ver se resolvo de vez o problema que tem usando apenas a winmm.dll que depende de codecs e as vezes mesmo tentando todos ainda assim tem vídeos que só dá som com tela preta, agora tendo mais opção para rodar os vídeos acho que consigo resolver isto.
  15. Incorporar libmpv no programa

    Consegui colocar Mute e Volume neste que usa a Ole32.dll e agora já dá prá incluir ele na minha lista de players também. Func IMediaControl_Mute(ByRef $IGraphBuilder, $opt = 0) If $opt = 0 Then IMediaControl_Vol($IGraphBuilder, $volume); 100 para volume total Else IMediaControl_Vol($IGraphBuilder, 0) EndIf GUICtrlSetData($lab_mute, "Mute: " & $opt) EndFunc ;==>IMediaControl_Mute Func IMediaControl_Vol(ByRef $IGraphBuilder, $vol = 50); Faltando $IMediaControl = GetIMediaControl($IGraphBuilder) If @error Then Return SetError(1, 0, False) ;-------IMediaControl Vol Virtual Method Number Is 46;---------------- $Rt = InterfaceCall($IMediaControl, "long", 46, "long", -Exp((100 - $vol) / 10.86)) ;-------IMediaControl Vol Virtual Method Number Is 46;---------------- GUICtrlSetData($lab_vol, "Vol: " & $vol) If @error Or $Rt[0] <> 1 Then CtrlGraphRelease($IMediaControl) Return SetError(2, 0, False) EndIf Return SetError(0, 0, True) EndFunc ;==>IMediaControl_Vol _DirectShow_Ole32.au3
×