
Carolina Marinho
Membros-
Total de itens
22 -
Registro em
-
Última visita
Sobre Carolina Marinho

- Data de Nascimento 12/08/1982
Perfil
-
Gender
Female
-
Location
Niterói - RJ
Carolina Marinho's Achievements
0
Reputação
-
DISTINCT com todos os campos da tabela
pergunta respondeu ao Carolina Marinho de Carolina Marinho em SQL Server
Oi Fulvio, boa tarde! Pensei nessa possibilidade também, o problema é que eu to fazendo isso tudo via VB 6, e assim fica beeeeem complicado... A solução que eu achei foi: Gerar um SEQUENCIAL na tabela; ALTER TABLE DBO.tabela ADD SEQUENCIAL BIGINT Incrementar esse SEQUENCIAL; declare @secuence BIGINT ; set @secuence = '0'; update DBO.tabela set @secuence = SEQUENCIAL = @secuence + 1 E comparar o TELEFONE; select * from tabela as a inner join (select MAX(SEQUENCIAL) AS SEQUENCIAL ,TELEFONE from tabela group by telefone) as b on a.SEQUENCIAL = b.SEQUENCIAL ORDER BY A.TELEFONE Isso me deu o resultado esperado, mas corro o risco de um timeout em algum lugar... :) Muito obrigada, Fulvio!!! Vou testar a sua solução e verificar o menor tempo de execução! -
Bom dia, tenho uma tabela com 22 campos, onde o campo TELEFONE possui registros duplicados. Preciso pegar todos os campos da tabela mas que o TELEFONE não se repita. Exemplo: NOME_CLIENTE | ENDERECO | TELEFONE | CPF MARIA DA SILVA | RUA DO SABÃO 23, 505 | 12345678 | 123.456.789-0 JOSE DE SOUZA | RUA 13 48, CASA 2 | 12345678 | 987.654.321-0 Os telefones são iguais. Eu preciso pegar os 4 campos da tabela mas somente um registro, não importando qual deles (MARIA ou JOSE) alguém pode me ajudar?
-
(Resolvido) Tempo excedido durante update
pergunta respondeu ao Carolina Marinho de Carolina Marinho em Visual Basic
Consegui resolver... Abri a conexão usando With rs .Open Source:=sql, _ ActiveConnection:=cn, _ CursorType:=adOpenKeyset, _ LockType:=adLockOptimistic End With Obrigada :) -
(Resolvido) Tempo excedido durante update
pergunta respondeu ao Carolina Marinho de Carolina Marinho em Visual Basic
kuroi, Descobri o que está acontecendo, mas não sei resolver... Antes de fazer o update, eu fechei o rs e funcionou perfeitamente. Sim, minha conexão funciona, eu consigo fazer select numa boa, o problema (eu acho) é que eu estou tentando fazer um update no registro que o select tá... fiz assim pra testar: Do While Not rs.EOF numeroCliente = rs.Fields("NUMERO_CLIENTE").Value numeroDoc = rs.Fields("NUM_DOC").Value If Not IsNull(numeroDoc) Then If Not IsNumeric(numeroDoc) Then rs.Close variavel_a_testar = numeroDoc If TestaRegExp("[^0-9]+", variavel_a_testar) = False Then numeroDoc = aString Update_documento End If End If Else numeroDoc = "00000000" Update_documento End If rs.MoveNext Loop Function Update_documento() Set cn_update = New ADODB.Connection Set rs_update = New ADODB.Recordset Banco_de_dados = "xxxxxx" servidor = "xxxxxxxxxxx" cn_string = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=" & Banco_de_dados & ";Data Source=" & servidor ' & " User ID=*****;Password=********" Set cn_update = New ADODB.Connection With cn_update .Open cn_string .CommandTimeout = 120 End With txt_sql = "Update_Documento " & numeroCliente & ", '" & numeroDoc & "'" cn_update.CommandTimeout = 120 cn_update.Execute txt_sql, , adExecuteNoRecordsSet End Function Assim funcionou, só que quando volta pro loop, dá erro dizendo que tá fechado (claro....). Isso mostra que o erro é o select aberto... Enfim, pensei em duas soluções, mas não sei executar nenhuma delas... 1- Criar uma matriz com colunas NUMERO_CLIENTE, NUMERO_DOC, NUMERO_TELEFONE (são os campos que eu preciso) que vai salvar os dados do select, para que eu possa fechá-lo antes do update; 2- Disseram que, por padrão, o VB trava qualquer execução na tabela que está sendo ultilizada, mas que tem como destravar, possibilitando o select ativo e o update. Espero ter conseguido explicar... -
Pessoal, boa tarde! Não estou conseguindo fazer um update simples em uma tabela, está dando 'tempo excedido'. Já tentei aumentar o tempo de comando e nada... Se eu pego a querie pelo immediate e rodo direto no banco, funciona como esperado... Alguém pode ajudar? Private Sub Form_Load() Dim usuario, senha, servidor, BancoDados As String Dim sql As String Dim sql_update As String Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset servidor = "TI01" BancoDados = "master" cn.Provider = "SQLOLEDB" cn.Properties("Data Source").Value = servidor cn.Properties("Initial Catalog").Value = BancoDados cn.Properties("User ID").Value = "usuario" cn.Properties("Password").Value = "senha" cn.Open Set rs = New ADODB.Recordset Set rs.ActiveConnection = cn sql = "SELECT * From Base_WA_140909" sql = sql & " WHERE (TXT_NOME_CIDADE = 'TANGUA') AND (CLASSE_SUBCLASSE > '02') AND " sql = sql & " (EST_CLIENTE = '0') OR (EST_CLIENTE = '3')" rs.Open sql, cn rs.MoveFirst Do While Not rs.EOF numeroCliente = rs.Fields("NUMERO_CLIENTE").Value If IsNull(rs.Fields("telefone").Value) Then sql_update = "UPDATE Base_WA_140909 SET TELEFONE = '00000000' WHERE NUMERO_CLIENTE = '" & numeroCliente & "'" cn.CommandTimeout = 120 cn.Execute sql_update, , adExecuteNoRecordsSet End If rs.MoveNext Loop End Sub
-
Eu achei!!! Eu tinha procurado em componentes... :unsure: Vou testar e volto pra dizer o que aconteceu :blush:
-
Também não tem... Achei uma solução válida, mas pra ser feita no SQL IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME='nomedatabela') SELECT 'tablename exists.' ELSE SELECT 'tablename does not exist.' Isso serviu pra mim. Mas, mesmo assim, eu ainda prefiro no VB <_<
-
Não tem essa opção nos componentes... 'Microsoft ActiveX Data Objects Extensions for DDL and Security 2.x ( ADOX)' :angry:
-
Kuroi, acabei vendo o favorito errado :unsure: ficou assim: servidor = "WA-TAURUS" BancoDados = "SGC" cnTaurus.Provider = "SQLOLEDB" cnTaurus.Properties("Data Source").Value = servidor cnTaurus.Properties("Initial Catalog").Value = BancoDados cnTaurus.Properties("User ID").Value = "*****" cnTaurus.Properties("Password").Value = "*****" cnTaurus.Open Set rsTaurus = New ADODB.Recordset Set rsTaurus.ActiveConnection = cnTaurus Dim cat As New ADOX.Catalog Dim tbl As New ADOX.Table Dim existe As Boolean Set cat.ActiveConnection = cnTaurus existe = False For Each tbl In cat.Tables If Tabela = "TBD_ODONTO_DATA_CARGA" Then existe = True End If Next Continua dando o mesmo erro, agora na linha 'Dim cat As New ADOX.Catalog'
-
Kuroi, fiz o seguinte: Dim db As DAO.Database Dim existe As Boolean Dim Tabela As DAO.TableDef existe = False Set db = DBEngine.OpenDatabase("D:\Banco_de_Dados_WA\SGC.mdf") For Each Tabela In db.TableDefs If Tabela = "TBD_ODONTO_DATA_CARGA" Then existe = True End If Next mas dá erro "Used-defined type not defined" na linha 'Dim db As DAO.Database'
-
Preciso de uma rotina que verifique se uma tabela existe no banco de dados (estou usando sql server), caso exista, faz o select nessa tabela, caso não exista (o que daria erro no VB), seja realizado um outro procedimento... Gostaria de saber qual condição usar.
-
Muito obrigada, kuroi! Mais uma vez! ;)
-
Boa tarde! Eu tenho uma rotina genérica (servidores, bancos e tabelas diferentes, dependendo da solicitação do usuário) que tira informações do banco de dados e insere numa planilha do excel, mas essas informações podem ter acentos ( ex: ã, é, á...). Em algumas tabelas, as palavras tem acento e em outras, não. Utilizei o Select Case para fazer a compração, mas precisaria retirar os acentos, caso eles existam... Alguém sabe se isso é possível? Para facilitar o entendimento: Select Case UCase(Trim(ws_file.Range("B" & contA4).Value)) Case "OCUPADO" ws_file.Range(ActualCol & contA4).Value = ocupado Case "não ATENDE" ws_file.Range(ActualCol & contA4).Value = naoatende Case "SECRETARIA ELETRONICA" ws_file.Range(ActualCol & contA4).Value = secretaria Case "TENTATIVA SEM SUCESSO" ws_file.Range(ActualCol & contA4).Value = tentsemsucesso End Select Na quarta linha do código, não é "não ATENDE" e sim "N A O ATENDE" sem os espaços. O forum tá editando para 'não'.
-
Ocultando linhas da planilha via VB6
pergunta respondeu ao Carolina Marinho de Carolina Marinho em Visual Basic
Ocultar a plan2 funcionou usando o Set. As colunas continuam sendo ocultadas até a H. :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: Mas eu to achando que as colunas estão travadas, ou ligadas, ou qualquer coisa do tipo, porque se eu mudo, por exemplo, pra ("I:M") funciona -
Ocultando linhas da planilha via VB6
pergunta respondeu ao Carolina Marinho de Carolina Marinho em Visual Basic
Nomeei a planilha como Plan2 mesmo, e não funcionou, continua dando o mesmo erro. é preciso utilizar Set ws_file = wb_file.Worksheets(numero da planilha) ??? Coloquei assim: Rows("23:34").Select Selection.EntireRow.Hidden = True Columns("C:E").Select Selection.EntireColumn.Hidden = True Plan2.Visible = xlSheetHidden E continua escondendo as colunas de C a H