RETORNANDO VALOR DE UMA DLL

NEGRON 30/07/2009 00:30:34
#318277
Boa Noite Galera!!!!!
Galera a Minha Dúvida é a Seguinte:

Estou criando uma Tela de Cadastro de Clientes onde estou utilizando
ADO + FIREBIRD

Eu estou programando em 3 Camadas pois fica mais fácil a manutenção e o sistema fica mais leve


Criei a Seguinte rotina para pegar o campo generator do firebird


Public Function GeraID(NomeGenerator As String) As Long
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
[ô]Use a tabela RDB$DATABASE pois ela sempre retorna um único registro
rs.Open [Ô]Select GEN_ID( GEN_LOCATARIO_ID, 0) From RDB$DATABASE[Ô], CONECTABANCO
GeraID = rs(0)
NomeGenerator = GeraID
[ô]Form1.TxtGeraCodigo.Text = GeraID
rs.Close
[ô][ô]GEN_LOCATARIO_ID
Set rs = Nothing
End Function


até ai tudo bem
o que eu não consegui foi pegar o valor que me foi retornado e joga-lo na text box, como eu faço isso
detalhe ess rotina está dentro de uma dll.

Por favor me ajudem!!!
SMANUT 30/07/2009 09:15:34
#318298
pode jogar em uma variável global, para depois jogar no form, eu uso classes em vez de DLL, ai faço assim

[ô]classe banco
Public Function SQL(ByVal stringSQL As String, Optional Ponteiro As CursorTypeEnum = CursorTypeEnum.adOpenForwardOnly) As Boolean
strCon = modVariavel.ConnectionString
If conex1 Is Nothing Then
Set conex1 = New ADODB.Connection
Set rs1 = New ADODB.Recordset
conex1.ConnectionString = strCon
conex1.Open
conex1.CursorLocation = adUseClient
Else
If conex1.State <> 1 Then conex1.Open
End If
Debug.Print ([Ô]### [Ô] & stringSQL)
Set rs1 = conex1.Execute(stringSQL)
End Function

agora dentro da classe especifica


Function listar() As ADODB.Recordset
banco.SQL [Ô]select nome,codigo,ativo from cad_cli where cad_cli.ativo=1 order by nome[Ô]
Set listar = banco.rs1
End Function
SMANUT 30/07/2009 09:17:14
#318300
agora no form
Dim Cliente As New clscliente
Dim rs As Recordset
Set rs = Cliente.listar()
Dim vcliente As String
While Not rs.EOF
If vcliente <> rs([Ô]nome[Ô]) Then
With TV1.Nodes.Add([Ô]pai[Ô], 4, [Ô]g[Ô] & rs([Ô]codigo[Ô]), rs([Ô]nome[Ô]))
.Tag = rs([Ô]codigo[Ô])
.Bold = False
End With
vcliente = rs([Ô]nome[Ô])
End If
rs.MoveNext
Wend
TV1.Nodes(1).Expanded = True
End Function
Tópico encerrado , respostas não são mais permitidas