{"id":2449,"date":"2016-02-03T13:24:17","date_gmt":"2016-02-03T17:24:17","guid":{"rendered":"http:\/\/linguagemprisma.br4.biz\/blog\/?page_id=2449"},"modified":"2016-02-17T21:14:27","modified_gmt":"2016-02-18T01:14:27","slug":"funcoes-sqlit3-prisma","status":"publish","type":"page","link":"https:\/\/linguagemprisma.br4.biz\/blog\/funcoes-sqlit3-prisma\/","title":{"rendered":"Fun\u00e7\u00f5es sqlit3 Prisma"},"content":{"rendered":"<p>Vou listar aqui as fun\u00e7\u00f5es dispon\u00edveis na biblioteca sqlite3:<\/p>\n<pre class=\"lang:prisma decode:true  \">0 - inclua a biblioteca:   local sql = inclua'sqlite3';\r\n\r\n\r\n1 - ret, bd = sql.abra(\"nome_arquivo\");   \/\/esta fun\u00e7\u00e3o usa a codifica\u00e7\u00e3o utf-8\r\n  [[ Abre um banco de dados j\u00e1 criado ou cria um caso n\u00e3o exista. \r\n   Se ret for igual a sql.SQLITE_OK o banco foi aberto com sucesso e a vari\u00e1vel\r\n   bd passa a representar o banco de dado aberto.\r\n]]\r\n2 - ret, bd = sql.abra16(\"nome_arquivo16\");\r\n[[ \u00c9 basicamente a mesma fun\u00e7\u00e3o que a de cima, com a diferen\u00e7a de que esta usa codifica\u00e7\u00e3o utf-16]]\r\n\r\n\r\n3- sql.exec( bd , 'string comando sql', 'func_call_back(%s,%s)' ou nulo )\r\n [[  esta fun\u00e7\u00e3o executa uma string de comando sql com uma fun\u00e7\u00e3o prisma call back. (a fun\u00e7\u00e3o call back pode ser omitida) ]]\r\n   \r\n4- sql.execute o mesmo que sql.exec\r\n\r\n5 - str_erro = sql.errmsg(bd); \r\n\/\/--&gt; retorna uma string descrevendo o \u00faltimo erro contido em bd. Usa utf-8 como codifica\u00e7\u00e3o.\r\n\r\n6 - sql.mensagem_erro(bd) \/\/--&gt; o mesmo que a de cima.\r\n\r\n7 - sql.feche(bd); \/\/ --&gt; fecha o banco de dados aberto.\r\n\r\n8 - str_versao = sql.libversao(); \r\n\r\n[[--&gt; retorna uma string descrevendo a vers\u00e3o do sqlite3 em C \r\n(diferente da versao do igsqlite3.so wrapper em Prisma);]]\r\n\r\n9 - ret , res = sql.prepare_v2( bd , \"string_comando_sql\");\r\n  [[Esta fun\u00e7\u00e3o compila uma cl\u00e1usula sqlite, \r\n  se ret for igual a sql.SQLITE_OK o precesso teve \u00eaxito \r\n  e uma variavel da string compilada \u00e9 retornada para \"res\";]]\r\n  \r\n10 - lin = sql.passe( res ); \r\n [[ Esta fun\u00e7\u00e3o analisa a string compilada retornada para res na fun\u00e7\u00e3o sql.prepare_v2();\r\n  se o retorno lin for igual a \"sql.SQLITE_LIN\" a linha da tabela \u00e9 v\u00e1lida \r\nsendo poss\u00edvel obter seus dados.\r\n  Esta fun\u00e3o pode percorrer todas as linhas de uma tabela, por exemplo, \r\nusando-se uma la\u00e7o de repeti\u00e7\u00e3o at\u00e9 que \r\n  o retorno n\u00e3o seja uma linha v\u00e1lida.]]\r\n  \r\n11 - str = sql.coluna_texto( res , num_coluna);  \r\n[[codifica\u00e7\u00e3o utf-8;\r\n  res \u00e9 a string compilada pela fun\u00e7\u00e3o sql.prepare_v2();   e num_coluna \u00e9 o n\u00famero da coluna( 1 = coluna 1, 2 = coluna 2...);\r\n --&gt; retorna uma string do valor contido na linha e coluna da tabela sqlite.\r\n ]]\r\n12 - str16 = coluna_texto16( res , num_coluna ); \r\n [[ --&gt; mesmo que a fun\u00e7\u00e3o acima mas esta trabalho com a codifica\u00e7\u00e3o utf-16 ]]\r\n\r\n13 str = sql.coluna_nome( res , num_coluna);\r\n[[ --&gt; retorna o nome da coluna indicada pelo n\u00famero no par\u00e2metro num_coluna. ]]\r\n \r\n14 - str16 = sql.coluna_nome16( res , num_coluna);\r\n [[--&gt; o mesmo que a fun\u00e7\u00e3o acima mas com codifica\u00e7\u00e3o utf-16. ]]\r\n\r\n15 - sql.finalize(res);\r\n[[  --&gt; finaliza a execu\u00e7\u00e3o da fun\u00e7\u00e3o sql.passe() liberando os resultados da mem\u00f3ria internamente em C ]]\r\n  \r\n16 - sql.ultimo_id( bd );\r\n\r\n[[ --&gt; Esta fun\u00e7\u00e3o retorna o n\u00famero do id do \u00faltimo registro em tabelas com colunas que \r\npossuam \u00edndices num\u00e9ricos de autoincremento Id. ]]\r\n\r\n17 - sql.vincule_int( res, ind, id );\r\n[[ res \u00e9 a string sqlite compilada.\r\nind \u00e9 o \u00edndice sqlite e id \u00e9 o valor que vai substituir o \"?\" na cl\u00e1usula sqlite. \r\n(ex. \"SELECT * FROM Clientes WHERE id = ?\" ) \r\n\r\n--&gt; vincula um valor no lugar do \"?\" em uma cl\u00e1usula sqlite. \r\n]]\r\n18 - idx = sql.vincule_parametro_index( res , \"@id\" ); \r\n[[ \r\n Vincula um par\u00e2metro da vari\u00e1vel sqlite \"@id\" index e retorna uma vari\u00e1vel para ser usada \r\n com a fun\u00e7\u00e3o sql.vincule_int(res, idx , num_id);\r\n \r\n ex.:  \"SELECT * FROM Clientes WHERE id = @id;\"\r\n \r\n  ]]\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vou listar aqui as fun\u00e7\u00f5es dispon\u00edveis na biblioteca sqlite3: 0 &#8211; inclua a biblioteca: local sql = inclua&#8217;sqlite3&#8242;; 1 &#8211; ret, bd = sql.abra(&#8220;nome_arquivo&#8221;); \/\/esta fun\u00e7\u00e3o usa a codifica\u00e7\u00e3o utf-8 [[ Abre um banco de dados j\u00e1 criado ou cria um caso n\u00e3o exista. Se ret for igual a sql.SQLITE_OK o banco foi aberto com&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"tpl-full-width.php","meta":{"footnotes":""},"class_list":["post-2449","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/pages\/2449","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/comments?post=2449"}],"version-history":[{"count":4,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/pages\/2449\/revisions"}],"predecessor-version":[{"id":2480,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/pages\/2449\/revisions\/2480"}],"wp:attachment":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/media?parent=2449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}