Manipulando Valores de Data e Hora na API C


O novo protocolo binário disponível no MariaDB e acima lhe permite enviar e receber dados de hora e data (DATE, TIME, DATETIME e TIMESTAMP) utilizando a estrutura MYSQL_TIME. Os membros desta estrutura estão em "Tipos de Dados de Instruções Preparadas da API C".

Para enviar um valor de dado temporal, você cria uma instrução preparada com mysql_prepare(). Então, antes de chamar mysql_execute() para executar a instrução, use o seguinte procedimento para configurar cada parâmetro temporal:

  1. Na estrutura MYSQL_BIND associado com o valor do dado, configure o membro buffer_type para o tipo que indique qual tipo de valor temporal você está enviando. Para valores DATE, TIME, DATETIME, ou TIMESTAMP configure buffer_type para MYSQL_TYPE_DATE, MYSQL_TYPE_TIME, MYSQL_TYPE_DATETIME, ou MYSQL_TYPE_TIMESTAMP repectivamente.
  2. Configure o membro buffer da estrutura MYSQL_BIND com o endereço da estrutura MYSQL_TIME na qual você passrá o valor temporal.
  3. Preencha os membros da estrutura MYSQL_TIME que são apropriadas para o tipo de valor temporal que você está passando.

Use mysql_bind_param() para ligar os dados do parâmetro a instrução. Então chame mysql_execute().

Para recuperar valores temporais, o procedimento é similar, exceto pelo fato de que você configura o membro buffer_type com o valor que você espera receber e o membro buffer com o endereço de uma estrutura MYSQL_TIME na qual o valor retornado deve ser colocado. Use mysql_bind_results() para ligar o buffer a instrução depois da chamada de mysql_execute() e antes de buscar os resultados.

Aqui está um exemplo simples que insere dados DATE, TIME e TIMESTAMP. A variável MariaDB é considerada como um handle de conexão válido.

Retornar