RETORNANDO VALOR DE UMA DLL
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!!!
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!!!
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
[ô]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
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
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