Página 1 de 1

MariaDb 10.5

Enviado: 25 Jun 2020 11:24
por asimoes
Novo release do MariaDb, com muitas novidades interessantes
https://mariadb.com/docs/release-notes/ ... -cs-10-5-4

MariaDb 10.5

Enviado: 25 Jun 2020 11:43
por Itamar M. Lins Jr.
Ola!
Isso é bom para quem usa alguma linguagem com IDE, tipo Lazarus...
Para nós harboreanos é sempre cada um por si. Se precisar adicionar algum parâmetro no drive do Harbour para usar essas funcionalidades, quem é que vai fazer ?
Tá froids...

Saudações,
Itamar M. Lins Jr.

MariaDb 10.5

Enviado: 25 Jun 2020 12:26
por JoséQuintas
Sei lá se não tô entendendo as mudanças, mas me pareceram correções.

MariaDb 10.5

Enviado: 25 Jun 2020 13:39
por asimoes
Tem novidade sim, uma é retornar o rowid quando faz um insert

INSERT ... RETURNING

É só olhar o changelog

Código: Selecionar todos

DELIMITER |
CREATE FUNCTION f(arg INT) RETURNS INT
    BEGIN
       RETURN (SELECT arg+arg);
    END|

DELIMITER ;

PREPARE stmt FROM "INSERT INTO t1 SET id1=1, animal1='Bear' RETURNING f(id1), UPPER(animal1)";

EXECUTE stmt;
+---------+----------------+
| f(id1)  | UPPER(animal1) |
+---------+----------------+
|       2 | BEAR           |
+---------+----------------+

MariaDb 10.5

Enviado: 25 Jun 2020 13:53
por asimoes
Itamar M. Lins Jr. escreveu:Ola!
Isso é bom para quem usa alguma linguagem com IDE, tipo Lazarus...
Para nós harboreanos é sempre cada um por si. Se precisar adicionar algum parâmetro no drive do Harbour para usar essas funcionalidades, quem é que vai fazer ?
Tá froids...
Ué, tá na documentação, além do changelog

https://mariadb.com/docs/reference/cs10 ... statements

MariaDb 10.5

Enviado: 25 Jun 2020 21:59
por Fernando queiroz
asimoes escreveu:Tem novidade sim, uma é retornar o rowid quando faz um insert

INSERT ... RETURNING

É só olhar o changelog

Código: Selecionar todos

DELIMITER |
CREATE FUNCTION f(arg INT) RETURNS INT
    BEGIN
       RETURN (SELECT arg+arg);
    END|

DELIMITER ;

PREPARE stmt FROM "INSERT INTO t1 SET id1=1, animal1='Bear' RETURNING f(id1), UPPER(animal1)";

EXECUTE stmt;
+---------+----------------+
| f(id1)  | UPPER(animal1) |
+---------+----------------+
|       2 | BEAR           |
+---------+----------------+

EU utilizava assim , mas dessa forma ja traz o retorno no mesmo comando

oServer:Execute(cQuery1+cQuery2)
oQuery1:=oServer:Execute("SELECT LAST_INSERT_ID()")
oQuery1:Fields( "LAST_INSERT_ID()" ):Value

MariaDb 10.5

Enviado: 26 Jun 2020 01:38
por JoséQuintas
Eu coloquei na minha classe:

Código: Selecionar todos

   ::ExecuteCmd( cSQL )
   Rs := ::ExecuteCmd( "SELECT LAST_INSERT_ID()" )
   nValue := Rs:Fields( 0 ):Value
   IF ValType( nValue ) == NIL
      nValue := 1
   ENDIF
   Rs:Close()
No uso:

:QueryCreate()
:QueryAdd( "campo", valor )
:QueryAdd( "campo", valor )
nId := :QueryExecuteInsert( "tabela" )

MariaDb 10.5

Enviado: 26 Jun 2020 09:18
por asimoes
JoséQuintas escreveu:Eu coloquei na minha classe:
Agora tem sintaxe nova com essa finalidade no select, e com a vantagem de retornar mais de uma coluna

MariaDb 10.5

Enviado: 26 Jun 2020 10:13
por asimoes