USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  erro em strings ado-mysql
Futura
PORTO FERREIRA
SP - BRASIL
Postada em 30/03/2006 19:50 hs            
estou migrando de vb6+ado+accessxp para vb6+ado+mysql5, bom algumas consultas com like, estão dando erro de sintaxe, e ao alterar um registro e dar um update no recordset, retorna um erro, que o registro solicitado não esta mais disponível, o que devo mudar ??
     
Futura
PORTO FERREIRA
SP - BRASIL
Postada em 31/03/2006 07:08 hs            
ninguém usa o vb com mysql ????
     
Armando Gioia
Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 31/03/2006 07:24 hs            
eu uso, posta a consulta, para que possamos ver...
     
Futura
PORTO FERREIRA
SP - BRASIL
Postada em 03/04/2006 07:39 hs            
bom é uma consulta com like, buscando pelo nome do cliente, como a seguir:
 
Dim sql As String
 sql = "Select codigo,razao,fones from [clientes]where [razao] like '%" & txttexto.Text & "%'"
sql = sql & "Order by [razao]"
Set Rs = New ADODB.Recordset
Rs.Open sql, Cnn, adOpenForwardOnly, adLockReadOnly
If Rs.EOF Then
  aviso = MsgBox("Consulta sem sucesso!", vbCritical + vbOKOnly, "Futura  - Aviso  ao  usuário")
  Exit Sub
End If
 Rs.MoveMin
  While Not Rs.EOF
    Set lista = lstnome.ListItems.Add(, , Rs.Fields("codigo"))
    lista.SubItems(1) = (Rs.Fields("razao"))
    If Not IsNull(Rs.Fields("fones")) Then lista.SubItems(2) = (Rs.Fields("fones"))
    Rs.MoveNext
  Wend
  Rs.Close
  Set Rs = Nothing
 
agora no mesmo esquema, se consulto pelo código, ou seja sem o like, não da erro, trago os dados todos na tela, altero e consigo atualizar, porém, se em seguida, buscar o mesmo registro e mandar salvar novamente, da um erro:
" A linha não pode ser localizada para atualização, alguns valores podem ter sido alterados, desde que ela foi lida pela ultima vez", então abaixo segue o código de atualização", então abaixo o código do botão Salvar/Atualizar:
 
Set Rs = New ADODB.Recordset
 If Trim(txtcodigo.Text) <> Empty Then
  Rs.CursorLocation = adUseClient
  sql = " select * from clientes where codigo = " & txtcodigo & " "
  Rs.Open sql, Cnn, adOpenKeyset, adLockOptimistic
 Else
  Rs.CursorLocation = adUseServer
  Rs.Open "clientes", Cnn, adOpenKeyset, adLockOptimistic
  Rs.AddNew
 End If
 ' dados cadastrais
 Rs!classe = cmbclasse.Text
 Rs!cgc = txtcgc.Text
 Rs!ie = txtrg.Text
 Rs!razao = txtrazao.Text
 Rs!apelido = txtape.Text
 Rs!rua = txtrua.Text
 Rs!comple = txtcomp.Text
 Rs!bairro = txtbai.Text
 Rs!cidade = cmbcid.Text
 Rs!uf = cmbuf.Text
 Rs!cep = txtcep.Text
 Rs!fones = txtfone.Text
 Rs!celular = txtcelular.Text
 Rs!fax = txtfax.Text
 Rs!email = txtemail.Text
 Rs!web = txtweb.Text
 Rs!cadastro = dtcad.Value
 Rs!datanasc = dtnas.Value
 Rs!obs = txtobs.Text
 Rs.Update
 Rs.Close
 Set Rs = Nothing
 aviso = MsgBox("Dados Atualizados", vbInformation + vbOKOnly, "Futura - aviso ao usuário")
 limpa
OBS: LEMBRANDO QUE ESTES CÓDIGOS, SÃO OS QUE USO PARA O ACCESS.
     
Armando Gioia
Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 03/04/2006 08:27 hs            
o erro esta na select, tenta usar ela assim
 
sql = "Select codigo,razao,fones from clientes where razao like'" & txttexto.Text & "%'"
sql = sql & "Order by razao"
 
     
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 03/04/2006 08:59 hs         
Você não pode usar os colchetes no mysql, no lugar deles coloque a crase:
select `codigo` from tabela
     
Página(s): 1/2      PRÓXIMA »

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página