Ir para conteúdo
Fórum Script Brasil

Arimateia Bezerra

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Tudo que Arimateia Bezerra postou

  1. Olá irmão, beleza!! Vamos tentar fazer uma parceria sobre este assunto, pois eu tenho um trabalho em andamento no youtube, vou divulgar o máximo seu trabalho e aprender com ele também, bem como gostaria aqui de deixar minha playlist para os interessados sobre o assunto. Sou programador .NET também com vida ativa no ramo em administração de Banco de Dados SQL Server aqui na empresa. Segue aí o Link:
  2. Bom dia. Caro colega, bom se eu entendi bem o sua necessidade, eu acho que isso te atende: Tabela de exemplo: --Criação da tabela de exemplo CREATE TABLE tblCaminho ( codigoID int IDENTITY(1,1) NOT NULL, caminho varchar(250) NOT NULL, ColocarTraco varchar(20) NULL ) Inserindo alguns valores --Inserindo alguns valores INSERT INTO tblCaminho values ('c:\', '12345678') INSERT INTO tblCaminho values ('d:\', '90876564') INSERT INTO tblCaminho values ('f:\', '32456340') INSERT INTO tblCaminho values ('w:\', '8u76r432') INSERT INTO tblCaminho values ('k:\', '67340942') INSERT INTO tblCaminho values ('c:\', 'l0h6g4d6') Criando um cursor para inserir traços de dois em dois caractere do campo de exmplo: --Código completo do cursor DECLARE @um varchar(3) DECLARE @doi varchar(3) DECLARE @tre varchar(3) DECLARE @qua varchar(3) DECLARE @coloca varchar(20) DECLARE @temp varchar(20) DECLARE cursorColca cursor for select ColocarTraco from tblCaminho open cursorColca fetch next from cursorColca into @coloca while @@FETCH_STATUS = 0 begin set @temp = @coloca set @um = SUBSTRING(@temp, 1, 2) set @doi = SUBSTRING(@temp, 3, 2) set @tre = SUBSTRING(@temp, 5, 2) set @qua = SUBSTRING(@temp, 7, 2) update tblCaminho set ColocarTraco = (@um +'-'+ @doi +'-'+ @tre +'-'+ @qua) where ColocarTraco = @coloca fetch next from cursorColca into @coloca end close cursorColca deallocate cursorColca Arquivo com comentários: --VARIÁVEIS PARA PARTICIONAR O NUMERO DECLARE @um varchar(3) DECLARE @doi varchar(3) DECLARE @tre varchar(3) DECLARE @qua varchar(3) --VARIÁVEL QUE VAI RECEBER O RSULTADO DO CURSOR DECLARE @coloca varchar(20) --VARIÁVEL A SER PARTICIONADA DECLARE @temp varchar(20) --DECLARAÇÃO DO CURSOR EFETIVA DECLARE cursorColca cursor for --ESSE SELECTE PEGA APENAS O CAMPO ONDE VAMOS COLOCAR OS TRAÇOS select ColocarTraco from tblCaminho --essa é uma tabela que criei como exemplo --ABRINDO O CURSOR open cursorColca /*BUSCANDO A PRÓXIMA LINHA NO CURSOR E INSERINDO NA VARIÁVEL DEFINIDA PARA ESSA FINALIDADE*/ fetch next from cursorColca into @coloca --VERIFICA O STATUS DA BUSCA, CASO ESSE STATUS SEJA DIFERENTE DE 0, --O LOOP PARA SIGNIFICANDO QUE O CURSOR CHEGOU NA ULTIMA LINHA DE SUA TABELA while @@FETCH_STATUS = 0 begin --USANDO A VARIÁVEL TEMPORÁRIA PARA REALIZAR A QUEBRA DO CAMPO --QUE PRECISAMOS INSERIR OS "TRAÇOS" set @temp = @coloca --SEPARANDO OS PONTOS ESPECÍFICOS ONDE QUEREMOS COLOCAR OS TRAÇOS set @um = SUBSTRING(@temp, 1, 2) set @doi = SUBSTRING(@temp, 3, 2) set @tre = SUBSTRING(@temp, 5, 2) set @qua = SUBSTRING(@temp, 7, 2) --FAZENDO UPDATE DO CAMPO ATUAL update tblCaminho -- ESSA LINHA CONCATENA AS VARIÁVEIS COM OS TRAÇOS E INSERE NO CAMPO DA TABELA set ColocarTraco = (@um +'-'+ @doi +'-'+ @tre +'-'+ @qua) --A CONDIÇÃO É QUE O CAMPO DA TABELA DEVE SER IGUAL AO DA VARIÁVEL where ColocarTraco = @coloca /*BUSCA A PRÓXIMA LINHA NO CURSOR E INSERINDO NA VARIÁVEL DEFINIDA PARA ESSA FINALIDADE NOVAMENTE E VOLTA PARA O INICIO DO LOOP, CASO NÃO ENCONTRE O STATUS DO FETCH SAI DE 0 PARA -1 E FINALIZA O LOOP*/ fetch next from cursorColca into @coloca end --FECHA O CUROSOR close cursorColca --RETIRA OS DADOS DO CURSOR DA MEMORIA OU UMA ESPECIE DE ROLLBACK deallocate cursorColca Esse cursor pode ser melhorado, dá uma pesquisada na internet sobre cursor para implementar esse script. Obs. Faça o teste em ambiente de backup, algo assim antes de colocar em produção Espero ter ajudado.
  3. Primeiro vou responder conforme eu entendi e vou fazer detalhadamente: criação da tabela: CREATE TABLE tblPaciente( pacienteID int IDENTITY(3,2) PRIMARY KEY NOT NULL, reg_medico varchar(max) NULL, evo_enfermeira varchar(max) NULL, evo_fisioterapia varchar(max) NULL, evo_clinica varchar(max) NULL, observacao varchar(max) NULL ( inserir vários pacientes de exemplo e deixei alguns registros sem evolução preenchida, no meu caso aqui eu usei como critério de verificação caso a coluna esteja vazia na tabela. então a forma mais primitiva e simples de se fazer o que você está querendo é fazer o select com a condição de que esse campo estivesse vazio. select * from tblPaciente where evo_fisioterapia = ''; Esse select retorna apenas os registros que não tem evolução de fisioterapia. Essa é a maneira mais primitiva de se fazer isso, não seria necessariamente um vetor.
  4. Essa pergunta eu gostaria de entender melhor: "Então, há alguma função que transforme minha chave composta concatenada em um int único?" Veja bem, você disse que tem uma chave composta string+int e quer encontrar uma forma de concatenar em um único int, se foi realmente que você está querendo, eu diria que seria impossível, haja vista que ao concatenar um string+int, é mais provável que tenhamos um resultado varchar(SQL) que seria a mesma coisa de um string em C#, java etc. Se você quiser um resultado no string único aí dá pra começar a pensar na ideia.
×
×
  • Criar Novo...