Executar Comando SQL
Iai Galera,
Bom não encontrei até agora o que preciso, se puderem me ajudar...
Estou a procura de um executador de comando via meu sistema.
Explicando melhor: Os usuários na empresa onde trabalho executam alguns comandos via o SQL Analyzer e eu acho isso muito perigoso pelo fato de não ter usuário e permissões. Ou seja, os usuários executam tudo com o usuário sa.
Gostaria de colocar tudo isso em meu sistema, mas não tenho idéia de onde começar, pois no query existe a possibilidade de se exibir grid e texto. Além do fato de o DbGrid não me trazer campo memo, e assim por diante.
Poderiam me ajudar?
Obrigado e aguardo resposta...
Bom não encontrei até agora o que preciso, se puderem me ajudar...
Estou a procura de um executador de comando via meu sistema.
Explicando melhor: Os usuários na empresa onde trabalho executam alguns comandos via o SQL Analyzer e eu acho isso muito perigoso pelo fato de não ter usuário e permissões. Ou seja, os usuários executam tudo com o usuário sa.
Gostaria de colocar tudo isso em meu sistema, mas não tenho idéia de onde começar, pois no query existe a possibilidade de se exibir grid e texto. Além do fato de o DbGrid não me trazer campo memo, e assim por diante.
Poderiam me ajudar?
Obrigado e aguardo resposta...
Tremonti
Curtidas 0
Respostas
Adriano Santos
01/11/2007
Tremonti, pode me explicar por que seus usuarios executam queries? Sim, porque se isso é feito para atualizaçãop do banco, o que acontece muito, você tem outras formas de fazer isso.
O que exatamente precisa?
Tem uma edição da ClubeDelphi, 84, que tem um artigo meu falando sobre o assunto.
Abs
O que exatamente precisa?
Tem uma edição da ClubeDelphi, 84, que tem um artigo meu falando sobre o assunto.
Abs
GOSTEI 0
Tremonti
01/11/2007
Fala Adriano,
executam porque precisam de novas rotinas no sistema, mas enquanto nao fica pronto, é executado via comando.
Exemplo, tirar relatório, alterar datas e assim vai...
Obrigado
executam porque precisam de novas rotinas no sistema, mas enquanto nao fica pronto, é executado via comando.
Exemplo, tirar relatório, alterar datas e assim vai...
Obrigado
GOSTEI 0
Adriano Santos
01/11/2007
Entendi.
É perigoso deixar o usuário executar selects, updates, deletes e etc. Eu faria uma rotina mais travada para que o usuário não ficasse tão livre.
Tenho três sugestões:
[list:79617b2561]
[*:79617b2561]Se for para filtro tem uma série de vídeo-aulas do meu colega Paulo Quicoli mostrando como criar uma super-query. Uma janela com alguns ComboBoxes onde o usuário cria sua consulta.
A primeira vídeo-aula está nesse link, depois fica fácil encontrar as outras:
https://www.devmedia.com.br/articles/viewcomp.asp?comp=5286
[*:79617b2561]Se for pra fazer manutenção do sistema, incluindo campos, tabelas e etc, crie um programinha que lê um arquivo texto e executa automaticamente as linhas do mesmo. Na edição 84 da ClubeDelphi tem um artigo meu. Se precisar de ajuda estou no ar.
[*:79617b2561]E por último se realmente necessitar que o usuário faça a querie e execute, crie uma janela com um Memo. Ao clicar em determinado botão você dá um loop no Lines do Memo e manda executar cada linha no método ExecuteDirect do componente SQLConnection do DBExpress. Funciona que é uma beleza.
[/list:u:79617b2561]
Abs
É perigoso deixar o usuário executar selects, updates, deletes e etc. Eu faria uma rotina mais travada para que o usuário não ficasse tão livre.
Tenho três sugestões:
[list:79617b2561]
[*:79617b2561]Se for para filtro tem uma série de vídeo-aulas do meu colega Paulo Quicoli mostrando como criar uma super-query. Uma janela com alguns ComboBoxes onde o usuário cria sua consulta.
A primeira vídeo-aula está nesse link, depois fica fácil encontrar as outras:
https://www.devmedia.com.br/articles/viewcomp.asp?comp=5286
[*:79617b2561]Se for pra fazer manutenção do sistema, incluindo campos, tabelas e etc, crie um programinha que lê um arquivo texto e executa automaticamente as linhas do mesmo. Na edição 84 da ClubeDelphi tem um artigo meu. Se precisar de ajuda estou no ar.
[*:79617b2561]E por último se realmente necessitar que o usuário faça a querie e execute, crie uma janela com um Memo. Ao clicar em determinado botão você dá um loop no Lines do Memo e manda executar cada linha no método ExecuteDirect do componente SQLConnection do DBExpress. Funciona que é uma beleza.
[/list:u:79617b2561]
Abs
GOSTEI 0
Tremonti
01/11/2007
Entendi.
Necessito mesmo que os usuários executem queries.
A dificuldade está no fato de que usuários executam updates e outros usuários selects.
Preciso de uma rotina bem semelhante ao do query, onde aparecem os resultados na parte inferior da tela, sabe?
Obrigado
Necessito mesmo que os usuários executem queries.
A dificuldade está no fato de que usuários executam updates e outros usuários selects.
Preciso de uma rotina bem semelhante ao do query, onde aparecem os resultados na parte inferior da tela, sabe?
Obrigado
GOSTEI 0
Adriano Santos
01/11/2007
Sim, entendi.
Isso é moleza de fazer. Crie uma tela onde você terá:
[list:fa83f4da00]
1. Você vai precisar de, 1 Button, 1 Memo alTop, 1 DbGrid alClient, 1 SQLConnection, 1 SQLQuery, 1 DataSetProvider, 1 ClientDataSet e 1 DataSource
2. Ligue o SQLConnection a sua base de dados
3. Ligue o SQLQuery ao SQLConnection pela propriedade SQLConnection
4. O DataSetProvider é ligado ao SQLQuery pela propriedade DataSet
5. Conecte o ClientDataSet ao DataSetProvider pela propriedade ProviderName
6. Por último ligue o DataSource ao ClientDataSet e o DBGrid ao DataSource
[/list:u:fa83f4da00]
Para utilizar você vai fazer algo asim no evento onClick do Button:
Essa é uma forma bem simplificada, só pra você entender. Dá pra fazer muita coisa com esse esquema e aperfeiçoar ainda mais.
Abs
Isso é moleza de fazer. Crie uma tela onde você terá:
[list:fa83f4da00]
1. Você vai precisar de, 1 Button, 1 Memo alTop, 1 DbGrid alClient, 1 SQLConnection, 1 SQLQuery, 1 DataSetProvider, 1 ClientDataSet e 1 DataSource
2. Ligue o SQLConnection a sua base de dados
3. Ligue o SQLQuery ao SQLConnection pela propriedade SQLConnection
4. O DataSetProvider é ligado ao SQLQuery pela propriedade DataSet
5. Conecte o ClientDataSet ao DataSetProvider pela propriedade ProviderName
6. Por último ligue o DataSource ao ClientDataSet e o DBGrid ao DataSource
[/list:u:fa83f4da00]
Para utilizar você vai fazer algo asim no evento onClick do Button:
procedure TForm1.Button1Click(Sender: TOject); begin if not SQLConnection.Connected then SQLConnection.Connected := True; with SQLQuery, ClientDataSet do begin Close; SQL.Clear; SQL.Assign(Memo1.Lines); ClientDataSet.FecthParams; ClientDataSet.Open; end; end;
Essa é uma forma bem simplificada, só pra você entender. Dá pra fazer muita coisa com esse esquema e aperfeiçoar ainda mais.
Abs
GOSTEI 0
Adriano Santos
01/11/2007
Ah detalhe, estou sem Delphi nesse momento então posso ter cometido algum erro na rotina de exemplo acima. Abs
GOSTEI 0