GARANTIR DESCONTO

Fórum Preciso de ajuda - Por favor me ajudem (Perdi essa tarde inteira tentando) StrToSQLTimeStamp #442931

15/05/2013

0

Tenho uma StringGrid com os seguintes valores:

DATA SECRETARIA VALOR
18.04.2013 13:10:23 SEC. DE OBRAS E SERVIÇOS 100.00
19.04.2013 09:23:00 SEC. DE EDUCAÇÃO 200.00

O que desejo:
Preciso passar o valor da coluna DATA com as horas pois o meu campo no BDs é do tipo TIMESTAMP para um DateTimePicker.DateTime para que possa ser alterado quando preciso, mas não tá dando certo. Estou fazendo assim:

DateTimePicker.DateTime:= SQLTimeStampToDateTime(StrToSQLTimeStamp(StringGrid.Cells[0,1])); (o valor de StringGrid.Cells[0,1] = 18.04.2013 13:10:23)

Percebo que o erro acontence na execução da função StrToSQLTimeStamp(StringGrid.Cells[0,1]).

recebo a seguinte menssagem de erro:
Exception class EConvertError with message 'Could not parse SQL TimeStamp string'. Process iProtocolo.exe (4976)
Ismael Vale

Ismael Vale

Responder

Posts

15/05/2013

Diogenes Sampaio

Olá Ismael,
Para você usar ponto no formato da data você precisa alterar a configuração de formato de data e hora no painel de controle do windows.
Substitua o "." ponto pela "/" e o código funcionará.
Responder

Gostei + 0

15/05/2013

Ismael Vale

Olá Diogenes, alterei os valores da coluna DATA para o formato dd/mm/yyyy hh:nn:ss como você me surgeriu, mas não funcionou como você pode observar na nova mensagem de erro abaixo:

Exception class TDBXError with message 'conversion error from string "18/04/2013 21:08:52"'. Process iProtocolo.exe (5484)
Responder

Gostei + 0

16/05/2013

Diogenes Sampaio

Verifique formato da data e hora em painel de controle > Região e Idiomas, Na aba formatos. No meu caso o formato de data abreviada está configurado como dd/mm/aaaa e a hora por extenso está definida como HH:mm:ss.
Com essas configurações o código abaixo funciona sem nenhum problema em meu PC:

S: TSQLTimeStamp;
S := StrToSQLTimeStamp('18/04/2013 13:10:23'); 


Você também pode usar a variável global FormatSettings(declarada em SysUtils) para configurar um separador para data e hora, dessa forma você não precisa se preocupa com as configurações do Sistema operacional, pois a função StrToSQLTimeStamp utilizará as configurações de formato definidas por você e não as configurações do sistema.

Delphi 2010

FormatSettings.DateSeparator := '.';
FormatSettings.TimeSeparator := ':';
S: TSQLTimeStamp;
S := StrToSQLTimeStamp('18.04.2013 13:10:23'); 


Delphi 7

DateSeparator := '.';
TimeSeparator := ':';
S: TSQLTimeStamp;
S := StrToSQLTimeStamp('18.04.2013 13:10:23'); 


Espero ter ajudado. T++
Responder

Gostei + 0

16/05/2013

Ismael Vale

Diogenes, muito obrigado pela ajuda. Deu certo.

Parabéns
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar