AJUDA COM SQL

INACIOJUNIOR 18/11/2009 12:18:44
#328051
Olá amigos do VBmania, estou com um problema para fazer um SQL . Bom, eu tenho uma tabela no meu cadastro de contatos que grava as permissões de e-mail da seguinte forma:

Aceita_Email_Blog = 2
Aceita_Email_Forum = 4
Aceita_Email_Propaganda = 8
Aceita_Email_Noticias = 16

Desta forma eu gravo o seguinte, se o cara escolher o 1º e o último gravo a soma, ou seja 18, gravo isto usando o Código em VB mais ou menos desta forma:

  
With flexPermissao
For i = 0 To myApls.Count - 1
Prg = (myApls.CodAPL(i))
vAcesso = 0
For o = 1 To flexPermissao.Cols - 1
If flexPermissao.TextMatrix(i + 1, o) = cChecked Then
vAcesso = vAcesso + 2 ^ (o - 1)
End If
Next o
[ô]salvar para cada apl aqui
Set db = OpenDatabase(myAPP.PathArquivos & [Ô]USRS.MDB[Ô], False, False, cSenha)

vCodPerfil = cmbImagem.ItemData(cmbImagem.ListIndex)

vCampos = ([Ô]CodPermissao, CodPerfil, CodNSerie, Permissao[Ô])

vValores = ([Ô][Ô] & vCod & [Ô],[Ô] & vCodPerfil & [Ô], [Ô] & Prg & [Ô],[Ô] & vAcesso & [Ô][Ô])

db.Execute [Ô]INSERT INTO Permissoes [Ô] & _
[Ô]([Ô] & vCampos & [Ô]) VALUES ([Ô] & vValores & [Ô]);[Ô]
db.Close
Set db = Nothing

Next i

Call SalvaPerfil(0)

End With



Para ler as permissões eu leio desta outra forma:

  
While rs.EOF = False And flexPermissao.Rows > i
For o = 1 To flexPermissao.Cols - 1
If (rs([Ô]Permissao[Ô]) And 2 ^ (o - 1)) > 0 Then
flexPermissao.TextMatrix(i, o) = cChecked
Else
flexPermissao.TextMatrix(i, o) = cUnChecked
End If
Next o
rs.MoveNext
i = i + 1
Wend


Bom o problema todo é que tenho que ler desta forma, mas fazendo o SQL, porém não sei como fazer isto no SQL, a função BINARY não funcionou ... Eu uso o Acess (MDB) como banco e as funções com o BINARY ele não aceitou, se alguém souber como fazer isto em SQL ficaria agradecido, obrigado.
LLAIA 18/11/2009 12:44:44
#328055
vc gostaria que o Access te retornasse em um campo assim por exemplo : 1010 ou um registro com cada bit em um campo ?

acho que não dá não ...
Tópico encerrado , respostas não são mais permitidas