[delphi-br] Variavel String, Delphi e C++

2009-11-26 Por tôpico Tiago F. Zacchi

Olá pessoal,
Criei uma dll em delphi, nesta dll uma função que retona uma String.
Estou querendo acessar esta dll e utilizar o retorno da função no c++, mas
estou tendo problemas com o tipo String. Se uso o retorno da função como
Integer funciona legal, mas com String não.
Vejam o código exemplo:

DLL:

library MyDllDelphi;
uses
  SysUtils,
  Classes;

{$R *.res}

function Triple(N: Integer): String; stdcall;
begin
  Result := 'O triplo do numero informado e ' + IntToStr(N * 3);
end;
exports Triple;

begin
end.

Programa em C++:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
typedef String (CALLBACK * tpTriple)(int);
tpTriple Triple;
HINSTANCE vDll;
String vRetorno;

vDll = LoadLibrary("MyDllDelphi.dll");
try
{
if(vDll != NULL)
{
Triple = (tpTriple)GetProcAddress(vDll,"Triple");
if(Triple)
vRetorno = Triple(5);
else
MessageBox(0, "Erro na leitura de dll!" ,
"Erro", 0+16+8192);
}
else
MessageBox(0, "Dll DNFe.dll não encontrada!" ,
"Erro", 0+16+8192);

}
catch (Exception &vExcep)
{
Application->ShowException(&vExcep);
}
FreeLibrary(vDll);
   
ShowMessage( vRetorno );
}
//--
-

Qual seria a melhor forma de retornar uma string que seja compatível com o
C++? 

Talvez eu esteja indo pelo caminho errado, não tenho muito conhecimento com
Delphi e C++.

Desde já, obrigado!




RES: [delphi-br] sistema muito doido

2009-11-16 Por tôpico Tiago F. Zacchi
Olá,

 

Tive problema parecido, no meu caso era problema de arredondamento de
valores, na tela apresentava o valor arredondado e na comparação não estava
arredondando os valors.

 

Verifique se não é este seu caso tbm.

 

Att,

Tiago

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Eduardo Melo
Enviada em: domingo, 15 de novembro de 2009 15:50
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] sistema muito doido

 

  

Ola Pessoal,

Estou com um problema muito doido para verificar se um valor de conta a
receber é maior que o valor recebido. Eu tenho uma conta de R$ 9,60 para
receber e se verifico se o campo que recebe este valor é maior que o valor a
receber ou seja também os 9,60, fica definido como valor maior.

Se converter o floattostr deste valor fica como 9,6 ai fiz teste só com
edits em outros executavel e apresentava como igual, mas no sistema esta
ambos como 9,60 e diz que 9,60 é maior que 9,60, muito doido, alguem já viu
este problema?

Outra coisa muito estranho que eu deixar o valor como 9,50 ele fica normal,
mas se coloco o valor como 9,60, 9,70, 9,80, 9,90 ele diz que é maior, o que
posso fazer?

-- 
Att

Eduardo Melo
4º Sistemas de Informação - Bacharelado
www.canaldevenda.com
www.meloshospedagem.com.br

-- 
Att

Eduardo Melo
4º Sistemas de Informação - Bacharelado
www.canaldevenda.com
www.meloshospedagem.com.br

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



RES: RES: [delphi-br] Comando com mais de um INSERT no TSQLQuery

2009-02-27 Por tôpico Tiago F. Zacchi
Olá,

 

Obrigado pela dica... fiz algo parecido com a idéia que vc
sugeriu. E tbm utilizei o conceito de transações como o Rubem Nascimento
sugeriu.. e funcionou o como eu queria... 

 

Obrigado...

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Eduardo Gushiken
Enviada em: quinta-feira, 26 de fevereiro de 2009 23:34
Para: delphi-br@yahoogrupos.com.br
Assunto: Res: RES: [delphi-br] Comando com mais de um INSERT no TSQLQuery

 

Oi Tiago,
Uma idéia que funciona, apesar de não ter um bom desempenho, é reescrever o
SQL.Text
do TSQLQuery para cada INSERT.
Você poderia pegar o arquivo de script com os INSERT's e colocar as linhas
em uma variável,
depois executa o SQL e passa para a próxima linha do script.
Mais ou menos assim:

while not Arq.EOF then begin
SQLQuery1.Close;
SQLQuery1.SQL.Text := VARIAVEL_INSERT;
SQLQuery1.ExecSQL();
Arq.Next // Aqui vai o código para passar para a próxima linha do arquivo,
mas eu não me
// lembro exatamente qual é
end;

Eu acho que essa ainda não é a melhor solução, mas eu sei que é melhor que
ter um SQLQuery1000.
O código acima deve ter algum erro na estrutura, mas é só para ter uma idéia
do que eu quis dizer.

[]'s
Eduardo M. O. Gushiken

____
De: Tiago F. Zacchi mailto:tiago_zacchi%40yahoo.com.br> >
Para: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> 
Enviadas: Quinta-feira, 26 de Fevereiro de 2009 21:36:50
Assunto: RES: [delphi-br] Comando com mais de um INSERT no TSQLQuery

Ok... Então se eu precisar executar um arquivo SQL com 1.000 instruções de
INSERT por exemplo teria que fazer uma a uma mesmo... não tem a
possibilidade de executar este arquivo SQL através do Delphi? 

Obrigado...

Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com



Nenhum vírus encontrado nessa mensagem recebida.
Verificado por AVG - www.avgbrasil.com.br
Versão: 8.0.237 / Banco de dados de vírus: 270.11.3/1975 - Data de
Lançamento: 02/27/09 07:05:00



[As partes desta mensagem que não continham texto foram removidas]



RES: [delphi-br] Comando com mais de um INSERT no TSQLQuery

2009-02-26 Por tôpico Tiago F. Zacchi
Ok... Então se eu precisar executar um arquivo SQL com 1.000 instruções de
INSERT por exemplo teria que fazer uma a uma mesmo... não tem a
possibilidade de executar este arquivo SQL através do Delphi? 

Obrigado...

-Mensagem original-
De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Rubem Nascimento da Rocha
Enviada em: quinta-feira, 26 de fevereiro de 2009 18:00
Para: delphi-br
Assunto: RE: [delphi-br] Comando com mais de um INSERT no TSQLQuery
Prioridade: Alta


Até onde me consta, até componentes que se prestam a executar scripts em
bancos de dados fazem isso, ou seja, executam os comandos SQL um por vez.
 
Sugiro que adote essa abordagem. E ainda, faça uso de transações, coisa que
pelo código ilustrado vc não está fazendo uso!
 
Boa sorte.
Sds.


> To: delphi-br@yahoogrupos.com.br
> From: tiago_zac...@yahoo.com.br
> Date: Thu, 26 Feb 2009 17:57:36 -0300
> Subject: [delphi-br] Comando com mais de um INSERT no TSQLQuery
>
> Olá pessoal,
>
>
>
> Estou com problemas na utilização do TSQLQuery.
>
>
>
> Estou tentanto executar dois INSERT em uma tabela do banco de
>
> dados Firebird da seguinte forma:
>
>
>
> vSQL = ‘INSERT INTO LogErro (LogDatImp) VALUES
>
> (CURRENT_TIMESTAMP);’;
>
>
>
> vSQL += ‘ INSERT INTO LogErro (LogDatImp) VALUES
>
> (CURRENT_TIMESTAMP);’;
>
>
>
> qryLogErro.Close;
>
>
>
> qryLogErro.SQL.Clear;
>
>
>
> qryLogErro.SQL.Add(vSQL);
>
>
>
> qryLogErro.ExecSQL;
>
>
>
> Mas esta dando o seguinte erro :
>
>
>
> General SQL error.
>
>
>
> Dynamic SQL error.
>
>
>
> SQL error code = -104
>
>
>
> Token Unknown – line 1, cilumn 61
>
>
>
> INSERT.
>
>
>
> Como posso resolver esse problema? Se eu executar um INSERT por vez
funciona
>
> legal mas se executar mais de um da o erro. Preciso executar mais de um
por
>
> q na verdade estou importando um arquivo de texto com vários comandos
INSERT
>
> nele para atualizar uma tabela do banco...
>
>
>
> Obrigado,
>
>
>
> Tiago.
>
_
Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver
offline. Conheça  o MSN Mobile!
http://mobile.live.com/signup/signup2.aspx?lc=pt-br



-- 
< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >



Nenhum vírus encontrado nessa mensagem recebida.
Verificado por AVG - www.avgbrasil.com.br 
Versão: 8.0.237 / Banco de dados de vírus: 270.11.3/1973 - Data de
Lançamento: 02/26/09 07:03:00



[delphi-br] Comando com mais de um INSERT no TSQLQuery

2009-02-26 Por tôpico Tiago F. Zacchi
Olá pessoal,

 

Estou com problemas na utilização do TSQLQuery. 

Estou tentanto executar dois INSERT em uma tabela do banco de
dados Firebird da seguinte forma:

 

vSQL = ‘INSERT INTO LogErro (LogDatImp) VALUES
(CURRENT_TIMESTAMP);’;

vSQL += ‘ INSERT INTO LogErro (LogDatImp) VALUES
(CURRENT_TIMESTAMP);’;

 

qryLogErro.Close;

qryLogErro.SQL.Clear;

qryLogErro.SQL.Add(vSQL);

qryLogErro.ExecSQL;

 

Mas esta dando o seguinte erro :

 

General SQL error.

Dynamic SQL error.

SQL error code = -104

Token Unknown – line 1, cilumn 61

INSERT.

 

Como posso resolver esse problema? Se eu executar um INSERT por vez funciona
legal mas se executar mais de um da o erro. Preciso executar mais de um por
q na verdade estou importando um arquivo de texto com vários comandos INSERT
nele para atualizar uma tabela do banco...

 

Obrigado,

Tiago.



 

 



[As partes desta mensagem que não continham texto foram removidas]