
fulvio
Moderadores-
Total de itens
1.218 -
Registro em
-
Última visita
Tudo que fulvio postou
-
Bom dia Jorge, Estava falando que deve ser por causa do Visual Studio pois já vi vários relatos de pessoas que trabalhavam normalmente com o aplicativo e não conseguiam instalar o SQL. Alguns falavam que os dois aplicativos rodavam sem problemas. Teve que formatar a máquina e depois não conseguia instalá-los novamente (vai entender). Uma solução de um usuário foi: desinstalar o Visual Studio (tudo), instalar o SQL Server e depois o Visual (algumas instalações são utilizadas por ambos os aplicativos). Caso reinstale os aplicativos, deixe o PowerShell 1.0 por ultimo. Se não me engano, a microsoft liberou o "SQL 2008 feature pack" para a extensão do Powershell. Espero que ajude.... :.)
-
Bom dia Castelo, No seu exemplo, está querendo separar o cod_requisicao por data, ok? Cada data teria um grupo de codigos distintos. Quando virar o ano, os dados do ano passado serão expurgados? Caso os dados do ano passado fiquem na mesma tabela, o indentity não funcionará (pois não conseguirá duplicá-lo). Uma implementação que se utiliza as vezes é fazer uma Procedure para controlar isto. A Procedure identifica o ano e incrementa um contador, pegando MAX + 1 de um campo de uma tabela criado apenas para isto. De retorno, a procedure disponibiliza um número. Aí pode utilizá-lo. Quando trocar o ano, a Procedure volta para o valor 1. OBS.: a procedure não é executada em paralelo. Se tiver mais de uma chamada, os processos serão enfileirados. Em relação à Chave, não será possível colocar o campo cod_requisicao como PK. O que pode ser feito é criar uma chave composta com os campos cod_requisicao e Data. Seria esta a dúvida? :.)
-
Provavelmente o problema está no Visual Studio... você já tentou instalar o SQL Server 2005?
-
Bom dia Jorge, rs... é isso mesmo. Mas na sua maquina é o Win7? Estes problemas infelizmente são corriqueiros. Os seus pre-requisitos estão corretos. Tente instalar novamente a ferramenta. :.)
-
Bom dia Castelo, Vamos ver se entendi. você quer inserir o primeiro registro da tabela e o ID ser 1. Depois inserirá k registros.... Após a inserção de k registros, setaria o ID para 2 e inseriria mais k registros? Outra coisa: A função "SCOPE_IDENTITY ()" pega o valor do ultimo identity inserido dentro de uma sessao.
-
Boa tarde Jorge, você pode utilizar o Visual Studio para criar as tabelas, mas prefiro o MANAGMENT STUDIO EXPRESS. Com certeza você não precisará apenas de criar tabelas, mas também administrar as mesmas com seus respectivos dados... Vá no site da Microsoft (ou em qualquer site de download) e baixe o MANAGMENT STUDIO EXPRESS. A versão express é gratuita.
-
DTS :: Chamada síncrona em task com Msxml2_XMLHttp (AJAX)
pergunta respondeu ao andrevgm de fulvio em SQL Server
Bom dia André, A variável global pode não estar sendo preenchida de forma correta. Quando você faz um "Execute Step", o sql roda apenas o step solicitado. As vezes o set da variável está ok por causa da instância que persiste. Ao executar a DTS, quando se inicia um outro step, o sql pode "descarregar" os dados. Aí quando se inicia o Step2, a variável do Step1 (que você via quando executava separadamente) está nula. Para testes, ao invés de utilizar a variável global, tente gravar / ler fisicamente o dado em uma tabela, para descartar possíveis erros de script. Caso o script rode desta forma, o problema estará mais direcionado. -
(Resolvido) Selecionar Aleatóriamente com vários Filtros
pergunta respondeu ao aldomm de fulvio em SQL Server
Boa tarde Aldo, O ex. do Banco que postou são as tabelas que possui? Peguei o exemplo que fez e tentei adaptar. Aí terá que fazer os relacionamentos entre as tabelas... Tentei pegar as matérias e as dificuldades. Como quer randômico, dê um "order by rand()". Ficaria mais o menos assim: select top (@NumeroDePerguntasPorDificuldade) * from Pergunta p, Materia m where p.Dificuldade in (1, 2) and m.CodigoMateria=p.CodigoPergunta ORDER BY Rand() Vai ficar faltando o restante das tabelas e seus relacionamentos. Caso não seja isto, pode postar... :.) -
Ok, entendido. Mas se os resultados grade, pares e total virarem colunas, você terá uma grande quantidade de colunas. Aí não repetiriam as linhas, mas teria problema com as colunas. Para realizar o agrupamento, todos os campos pesquisados devem conter dados iguais. Com os campos que postou, o agrupamento não funcionará. O que pode ser feito é deixar o aplicativo tratar os dados. O sql apenas resgata os dados e o aplicativo manipula e exibe.
-
Bom dia Rodrigo, Não entendi ao certo o que está precisando... Na tabela de exemplo temos os campos: Campo1 | Campo2 | Campo3 | Campo4 você está querendo que o resultado saia desta forma: Campo3 | Campo2 | Campo4 | Campo1 Seria isto? Caso seja, basta colocar o nome dos campos na ordem que deseja, após o select. Caso não seja, posta um exemplo... :.)
-
(Resolvido) Selecionar Aleatóriamente com vários Filtros
pergunta respondeu ao aldomm de fulvio em SQL Server
Bom dia Amigo, Depois da cláusula FROM, o sintaxe do SQL espera o nome de uma tabela válida. você não pode colocar um subselect e nem uma variável contendo o nome da tabela. Outra coisa. Na sintaxe: SELECT TOP (@NumeroDePerguntasPorDificuldade) FROM (SELECT * FROM Perguntas WHERE Materia=@materia) WHERE Dificuldade=2 Está faltando qual o campo de retorno. Ex.: SELECT TOP (@NumeroDePerguntasPorDificuldade) * FROM (SELECT * FROM Perguntas WHERE Materia=@materia) WHERE Dificuldade=2 Qualquer dúvida, pode postar ai... :.) -
Bom dia Sidnei, Onde estão gravadas as conexões? Possui backup da base SQL?
-
Bom dia Marvi, Nunca ouvi falar de virus presente no Banco de Dados. Os virus com certeza atacam as bases, mas não ficam "hospedados" nele. O comando <iframe> é um código HTML que permite você abrir uma página dentro de outra e exibir algum conteúdo extra. Há vários tipos de virus. Se o Servidor estiver infectado, terá que limpá-lo. Dependendo do virus, mesmo sem acesso a rede, sem sites no ar, eles "aparecem". Moverei seu tópico para o Forum Fórum Script Brasil > Segurança e Malwares > Remoção De Malwares.
-
Bom... já estamos caminhando. rs. Pra seccionar por intervalo, aí você terá que criar uma temporária com loop, pois terá que manipular os dados do resultado. Fiz um exemplo explicativo pra você logo abaixo. Aí você adapta à sua necessidade. -- Criação de tabela de teste create table #Lotes (Estaca int, Lote varchar(10)) insert into #Lotes values (1 ,'lote1') insert into #Lotes values (2 ,'lote1') insert into #Lotes values (3 ,'lote1') insert into #Lotes values (4 ,'lote2') insert into #Lotes values (5 ,'lote2') insert into #Lotes values (6 ,'lote2') insert into #Lotes values (7 ,'lote3') insert into #Lotes values (8 ,'lote1') insert into #Lotes values (9 ,'lote1') insert into #Lotes values (10 ,'lote1') insert into #Lotes values (11 ,'lote1') -- Vrificação select * from #Lotes -- Criação de temporária para manipulação create table #Agrupamento (Lote varchar(10), De int, Ate int, Controle int identity) -- Inserção do resultado insert into #Agrupamento select lote, min(Estaca) De, max(Estaca) Ate from #Lotes group by lote -- Declaração de variaveis -- Selecione tudo para abaixo e rode até o END Declare @Controle int Declare @De int Declare @Ate int Declare @Intervalo int Declare @Lote varchar(10) Set @Controle = 1 -- Loop While @Controle <= (select max(controle) from #Agrupamento) Begin -- resgata os valores que serão manipualdos set @Lote = (select lote from #Agrupamento where controle=@Controle) set @De = (select de from #Agrupamento where controle=@Controle) set @Ate = (select Ate from #Agrupamento where controle=@Controle) -- Verifica se o intervalo é maior que 100. No meu caso, coloquei o intervalo maior que 3 para testes. if (@Ate - @De) > 3 Begin Set @Intervalo = (@De + 3) -- insere na tabela. Como possui a coluna Controle identity, os dados passarão nomvamente por verificação. insert into #Agrupamento values (@Lote, @De, @Intervalo) insert into #Agrupamento values (@Lote, @Intervalo, @Ate) -- Deleta o intervalo pesquisado delete from #Agrupamento where controle=@Controle End -- incrementa o controle. set @Controle = @Controle + 1 End -- Verificação do resultado select * from #Agrupamento order by lote, de
-
Bom dia Pedro, Então deixa eu entender o que precisa: - Os dados da coluna Estaca são únicas. Não há repetição. - O campo Lote pode conter dados repetidos e fora da ordem. No sql que postei, peguei apenas o mínimo e o máximo das estacas e fiz o agrupamento dos lotes. No seu exemplo: estaca lote 1 lote1 2 lote1 3 lote1 4 lote2 5 lote2 6 lote2 7 lote3 8 lote1 9 lote1 10 lote1 11 lote1 Ficou o resultado: Lote DE ATE lote1 | 1 | 11 lote2 | 4 | 6 lote3 | 7 | 7 Se você estiver querendo pegar os intervalos entre os números das estacas (com seus respectivos lotes), aí esta sintaxe não funcionará. Para esta solucção, o que deverá ser feito: - Criar uma temporária com uma ordenação por Estaca e Lote, nesta ordem. - Fazer um loop para verificar os intervalos numéricos. Caso seja o segundo caso, provalvemente a implementação deverá ser realizada via Função ou Procedure. :.)
-
Boa tarde Pedro, Parece que houve um erro na hora da digitação no exemplo. No começo, o lote1 vai de 1 até 3. Depois o lote1 repete de 8 até 11. No resultado, os números iniciais de Estacas não estão de acordo com os lotes... :.) Fiz um exemplo logo abaixo utilizando os dados do seu exemplo. Faça os testes e olhe se é isso mesmo que precisa. Qualquer coisa, pode postar... create table #Lotes (Estaca int, Lote varchar(10)) insert into #Lotes values (1 ,'lote1') insert into #Lotes values (2 ,'lote1') insert into #Lotes values (3 ,'lote1') insert into #Lotes values (4 ,'lote2') insert into #Lotes values (5 ,'lote2') insert into #Lotes values (6 ,'lote2') insert into #Lotes values (7 ,'lote3') insert into #Lotes values (8 ,'lote1') insert into #Lotes values (9 ,'lote1') insert into #Lotes values (10 ,'lote1') insert into #Lotes values (11 ,'lote1') select lote, min(Estaca) De, max(Estaca) Ate from #Lotes group by lote
-
(Resolvido) SELECT soma de valores por mês
pergunta respondeu ao Diego Roberto de fulvio em SQL Server
Boa tarde Diego, Dá uma olhada neste script também... pode ajudar. Outra coisa: utilize a sintaxe IN para otimizar a pesquisa de meses e anos. A função month e year já resgata os respectivos dados. select (substring(convert(varchar(10), vc_dtapresentacao,103), 4, 10)) Data, sum(vc_valor_liquido) Soma_Valor_Liquido from vendas_credito where month(vc_dtapresentacao) in ('07', '8') and year(vc_dtapresentacao) in ('2009', '2008') group by (substring(convert(varchar(10), vc_dtapresentacao,103), 4, 10)) -
Boa tarde Skullblack, Não entendi direito o "automatica"... rs. Se você quiser q ela execute a cada 1 hora, você terá q agendar (ai seria o JOB). você pode colocar um "timer" na procedure mesmo, pra executar de 1 em 1 hora, mas aí a procedure terá q ficar executando (como se fosse um serviço do win). você perderia no desempenho não somente do sql, mas no processamento da máquina.
-
rs... beleza. Precisando estamos ai!!! :.)
-
Boa tarde Daniel, Não precisa se preocupar não. O problema está resolvido... isso que interessa!!! :.) Precisando estamos ai. Um abraço.
-
update TABELA set CAMPO=(replace(CAMPO, '<oi>', ''))
-
Coloquei para exibir apenas como exemplo... aí agora é só adaptar o script para "uptadar"... update TABELA set CAMPO=(replace('Marcelo <oi>', '<oi>', '')) where CAMPO='Marcelo <oi>'
-
Bom dia Marvi, Existe o replace no SQL. :.) Sintaxe: select replace('Marcelo <oi>', '<oi>', '')
-
Bom dia NIK, Qual o erro que está dando? O que postou acima foi de permissão.... :.) Dê uma olhada também nas configurações do SQL - Surface Area Configuration. O uso do SQLMail deve estar habilitado. Pelo sp_configure você também consegue habitar... Script: EXEC master.dbo.xp_sendmail @recipients=N'seuemail@email.com.br', @message=N'Teste de envio de mensagens.'
-
Boa tarde NIK, O erro especificado está informando que o parametro @user é obrigatório. No link sobre o comando "xp_sendmail" está informando a parametrização que deverá ser feita: http://msdn.microsoft.com/pt-br/library/ms189505.aspx Comando xp_startmail: http://msdn.microsoft.com/pt-br/library/ms188392.aspx