Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Como converter String para PAnsiChar?


maxley_gyn

Pergunta

Boa tarde,

Gostaria de saber se tem como converter este tipos string para pansichar, pois entou tentando fazer um backup aqui e esta dando este erro [DCC Error] UBackup.pas(101): E2010 Incompatible types: 'string' and 'PAnsiChar' no código abaixo, já tentei de várias formas, porém ainda não consegui, estou usando o Delphi 2010 e utilizando um opendialog para pegar o diretório e envio para a edit,desde já agradeço obrigado.

WinExec('cmd /c mysql -u root -pmax -h localhost sgf < ' + PAnsiChar(AnsiString(EdLocalRestaurar.Text)), SW_HIDE);
Editado por Jhonas
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

testei assim e não deu erro

procedure TForm1.Button1Click(Sender: TObject);
begin
WinExec(PChar('cmd /c mysql -u root -pmax -h localhost sgf < '+ Edit1.text), SW_HIDE);
end;

Dessa maneira tambem não deu erro

WinExec(PAnsiChar('cmd /c mysql -u root -pmax -h localhost sgf < '+ EdLocalRestaurar.Text), SW_HIDE);

para backup do MYSQL uso dessa maneira

WinExec('cmd /c mysqldump -u root -p --password=senha -c -e --databases MeuBanco > c:\backup\dados.sql' ,SW_HIDE);

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Deu certo em parte, pois o erro não aparece mais, porem não esta gerando o arquivo sql.

Com este código realizo o backup

WinExec(PAnsiChar('cmd /c mysqldump -u root -pmax --database sgf > C:\SGF\Backup\backupSGF.sql'), SW_HIDE);

Com este realizo a restauração

WinExec(PAnsiChar('cmd /c mysql -u root -pmax -h localhost sgf < C:\SGF\Backup\backupSGF.sql'), SW_HIDE);

No entanto quero pegar o diretório selecionado pelo usuário tanto para backup como restore, por isso concateno o edit com o código, como eu disse não da erro mas não gera o arquivo sql, com esses códigos acima da tudo certo mas fica definido somente em um diretório.

ShowMessage(PAnsiChar('cmd /c mysqldump -u root -pmax --database sgf > '+ EdLocalBackup.Text));

Nesta mensagem acima a saída é apenas a letra c, será isso?

Editado por maxley_gyn
Link para o comentário
Compartilhar em outros sites

  • 0

Deu certo aqui fui tentando até conseguir, segue o código abaixo, muito obrigado Jhonas você me ajudou muito, valeu.

Backup

ShellExecute(handle, 'open', 'cmd.exe', PChar( '/c mysqldump -u root -pmax --database sgf > ' + EdLocalBackup.Text), nil, SW_HIDE);

Restore

ShellExecute(handle, 'open', 'cmd.exe', PChar( '/c mysql -u root -pmax -h localhost sgf < ' + EdLocalRestaurar.Text), nil, SW_HIDE);

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...