Ir para conteúdo
Fórum Script Brasil

jothaz

Membros
  • Total de itens

    430
  • Registro em

  • Última visita

Tudo que jothaz postou

  1. Camarada, você têm certeza eu são as variáveis é que estão pesando mesmo? Criar o include talvez não vá fazer nenhuma diferença e dependendo do número de includes pode pesar ainda mais a aplicação. Sugiro uma verificada na rede, servidores e crie uma página com menos variável para testar se são elas que estão matando a aplicação. t+
  2. jothaz

    Mais De Um Anexo

    Princesa, você já tem alguma coisa implementada ou quer algo do zero? Vou pesquisar e depois post o que achei. t+
  3. Princesa, Segue um exemplo completo, do nosso amigo eriva_br , de executar o que queres. set nocount on --tabelas para testes create table produto (ID_PRODUTO int, NOM_PRODUTO varchar(50)) insert into produto (ID_PRODUTO, NOM_PRODUTO ) values (1, 'PRODUTO 1') insert into produto (ID_PRODUTO, NOM_PRODUTO ) values (2, 'PRODUTO 2') insert into produto (ID_PRODUTO, NOM_PRODUTO ) values (3, 'PRODUTO 3') create table fornecedor(ID_FORNECEDOR int, NOM_FORNECEDOR varchar(50)) insert into fornecedor (ID_FORNECEDOR, NOM_FORNECEDOR ) values (1, 'FORNECEDOR 1') insert into fornecedor (ID_FORNECEDOR, NOM_FORNECEDOR ) values (2, 'FORNECEDOR 2') insert into fornecedor (ID_FORNECEDOR, NOM_FORNECEDOR ) values (3, 'FORNECEDOR 3') insert into fornecedor (ID_FORNECEDOR, NOM_FORNECEDOR ) values (4, 'FORNECEDOR 4') create table forn_prod (ID_PRODUTO int, ID_FORNECEDOR int) insert into forn_prod (ID_PRODUTO, ID_FORNECEDOR ) values (1, 1) insert into forn_prod (ID_PRODUTO, ID_FORNECEDOR ) values (2, 1) insert into forn_prod (ID_PRODUTO, ID_FORNECEDOR ) values (1, 2) insert into forn_prod (ID_PRODUTO, ID_FORNECEDOR ) values (2, 2) insert into forn_prod (ID_PRODUTO, ID_FORNECEDOR ) values (1, 4) --tabela temporaria create table #temp (NOM_PRODUTO varchar(50), NOM_FORNECEDOR varchar(4000)) --select distinct para buscar somente produtos que estejam na tabela forn_prod --cursor x: produtos declare x cursor for select distinct forn_prod.ID_PRODUTO, NOM_PRODUTO from forn_prod inner join produto on produto.ID_PRODUTO = forn_prod.ID_PRODUTO --variaveis para o cursor x declare @ID_PRODUTO int declare @NOM_PRODUTO varchar(50) --variável para concatenar o nome dos fornecedores declare @NOM_FORNECEDOR_conc varchar(8000) open x f etch next from x into @ID_PRODUTO,@NOM_PRODUTO while @@fetch_Status=0 begin --zerando variável de concatenação set @NOM_FORNECEDOR_conc = '' --cursor y: fornecedores relacionados com os produtos, vai concatenar os fornecedores na variável @NOM_FORNECEDOR_conc declare y cursor for select NOM_FORNECEDOR from fornecedor inner join forn_prod on forn_prod.ID_FORNECEDOR = fornecedor.ID_FORNECEDOR where forn_prod.ID_PRODUTO = @ID_PRODUTO --variavel para o cursor y declare @NOM_FORNECEDOR varchar(50) open y f etch next from y into @NOM_FORNECEDOR while @@fetch_Status=0 begin --concatenando fornecedores na variável @NOM_FORNECEDOR_conc set @NOM_FORNECEDOR_conc = @NOM_FORNECEDOR_conc + @NOM_FORNECEDOR + ', ' --loop do cursor y f etch next from y into @NOM_FORNECEDOR end --fim do cursor y close y deallocate y --retira última virgula set @NOM_FORNECEDOR_conc = substring(@NOM_FORNECEDOR_conc, 1, len(@NOM_FORNECEDOR_conc)-1) --insere na tabela virtual insert into #temp (NOM_PRODUTO, NOM_FORNECEDOR ) values (@NOM_PRODUTO, @NOM_FORNECEDOR_conc) --loop do cursor x f etch next from x into @ID_PRODUTO,@NOM_PRODUTO end --fim do cursor x close x deallocate x --consulta da tabela temporaria select * from #temp --apagando tabela temporaria drop table #temp --apagando tabelas para testes drop table produto drop table fornecedor drop table forn_prod qualquer dúvida é só se manifestar. t+
  4. jothaz

    Usando Procedure

    Camarada, você se confundiu porque stored procedure não utiliza return e sim funçoes. As sp´s retornam um select as funções podem retorna valores e até mesmo um select. Para cria um função faça assim: CREATE FUNCTION FormataValor(@Valor Decimal(18,4),@SepMilhar char(1),@SepDecimal Char(1)) Returns Varchar(50) AS Begin Declare @Inteiro int, @Texto varchar(50), @ValorDecimal varchar(04) Set @Texto = RTrim(Cast(@Valor as varchar(50))) Set @Inteiro = Cast(@Valor as Integer) Set @ValorDecimal = SubString(@Texto,Len(@Texto)-3,4) If Len(@Inteiro) = 4 Set @Texto = SubString(Cast(@Inteiro as varchar(10)),1,1) + @SepMilhar + SubString(Cast(@Inteiro as varchar(10)),2,3) + @SepDecimal + @ValorDecimal If Len(@Inteiro) = 5 Set @Texto = SubString(Cast(@Inteiro as varchar(10)),1,2) + @SepMilhar + SubString(Cast(@Inteiro as varchar(10)),2,3) + @SepDecimal + @ValorDecimal If Len(@Inteiro) = 6 Set @Texto = SubString(Cast(@Inteiro as varchar(10)),1,3) + @SepMilhar + SubString(Cast(@Inteiro as varchar(10)),2,3) + @SepDecimal + @ValorDecimal Return @Texto End Para utilizar: SELECT *,FormataValor(SEU_CAMPO_TABELA) FROM ................ Ajudou ou atrapalhou masi? :P qualquer coisa post ai. t+
  5. jothaz

    Dia Da Semana

    Ih ai Tassiana, Como estão as coisas? Bom com esta gravado este dia? Tipo: 1 - segunda, 2 - terça... O CASE vai lhe ajudar: SELECT CASE WHEN DIA_TABELA = 1 THEN 'SEGUNDA' WHEN DIA_TABELA = 2 THEN 'TERÇA' WHEN DIA_TABELA = 3 THEN 'QUARTA' WHEN DIA_TABELA = 4 THEN 'QUINTA' WHEN DIA_TABELA = 1 THEN 'SEXTA' WHEN DIA_TABELA = 1 THEN 'SABADO' WHEN DIA_TABELA = 1 THEN 'DOMINGO' END AS DIA_ESTENSO FROM SUA_TABELA Bom agora você adpata de acordo com seus dados. Se quiser pode criar um função. Só como curiosidade para escrever uma data por extenso utilize: create table #tab (datai datetime, dataf datetime) insert into #tab (datai, dataf) values ('2003/07/05 10:00','2003/08/07 15:30') insert into #tab (datai, dataf) values ('2003/07/05 10:00','2003/09/07 15:30') insert into #tab (datai, dataf) values ('2003/07/05 10:00','2003/09/07 16:00') insert into #tab (datai, dataf) values ('2003/07/05 10:00','2004/09/07 16:00') declare @saida varchar(2000), @datai datetime, @dataf datetime declare @mês int, @dia int, @diat int, @hora int, @min int DECLARE mycursor CURSOR FOR select * from #tab OPEN mycursor FETCH NEXT FROM mycursor INTO @datai, @dataf WHILE @@FETCH_STATUS = 0 BEGIN set @saida = '' set @mês = datediff(mm,@datai,@dataf) set @diat = datediff(d,@datai,@dataf) set @hora = datediff(hh,@datai,@dataf) set @min = datediff(mi,@datai,@dataf) Set @min = @min % 60 set @dia = @diat - (@mês * 30) - 1 set @hora = (@hora - (@diat * 24)) print str(@mês,2) + ' mês(es) ' + str(@dia,2) + ' dia(s) ' + str(@hora,2) + ' hora(s) ' + str( @min,2) + ' minuto(s)' FETCH NEXT FROM mycursor INTO @datai, @dataf END CLOSE mycursor DEALLOCATE mycursor GO --select * from #tab where datai like '%2003%' drop table #tab t+
×
×
  • Criar Novo...