Alexandre e Luiz Antonio, desde já agradeço pela a atenção, pelo que vejo, vocês tem conhecimento em SQL mais não trabalham com SGDB FIREBIRD, mais com esse conhecimento e a boa vontade sei que vão poder me ajudar, analisem o código abaixo:
*
* Access a firebird database through ODBC
*
* Based on ODBC_2 sample included in MiniGui Extended distribution
* Hugo Rozas M.
* HMG Extended v1.9.98
*
*/
#include 'minigui.ch'
Memvar fColor,bfrColor,bColor
static oConnection
Function Main
set navigation extended
oConnection = todbc():new('DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME=CADSERV.FDB;')
oConnection:Open()
* set delete on
*Set ToolTipBalloon On
*set browsesync on
set century on
set date german
Private fColor := { |x,CellRowIndex| if ( CellRowIndex/2 == int(CellRowIndex/2) , RGB( 0,0,255 ) , RGB( 0,255,0 ) ) }
Private bColor := { |val,CellRowIndex| if ( CellRowIndex/2 == int(CellRowIndex/2) , { 222,222,222 } , { 255,255,255 } ) }
Private bfrColor := {|| RGB(0,0,0)}, bbkColor := {|| RGB(255,255,255)}
FOTO:="4.BMP"
Load Window Frm_Princ
Center Window Frm_Princ
Frm_Princ.Maximize
Frm_Princ.Lbl_Mensagens.Visible := .F.
Activate Window Frm_Princ
Return
*-----------------------------------------------------------------
Procedure CadServid()
*oConnection = todbc():new('DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME=CADSERV.FDB;')
*oConnection:Open()
Load Window Frm_CadPes
*Carrega_Dados(1)
Center Window Frm_CadPes
Activate Window Frm_CadPes
Return
*-----------------------------------------------------------------
Procedure Carrega_Dados(N)
FRM_CADPES.GRID_1.Deleteallitems
oConnection:Setsql('SELECT CPF,NOME FROM CADSERV ORDER BY NOME')
if !oConnection:Open()
msgstop("Não foi possÃvel conectar a Base de Dados")
else
for i= 1 to len( oConnection:aRecordset )
FRM_CADPES.GRID_1.additem( oConnection:aRecordset[i] )
next
FRM_CADPES.GRID_1.value := n
end
oConnection:Close()
REturn
*-----------------------------------------------------------------
Procedure tESTE()
VCOD:="12345678900"
Str := "INSERT INTO CADSERV (CPF,NOME) VALUES ("+VCOD+","+"'JOAO VICTOR'"+")"
MSGINFO(Str)
oConnection:Setsql( Str )
if !oConnection:Open()
msgstop("Não foi possivel fazer a operação")
end
oConnection:Close()
RETURN
*-----------------------------------------------------------------
procedure Eventos_(n)
local cCPF:="", cNOME:="",Str
do case
case n == 1 .or. n == 2
if n = 2
cCPF := FRM_CADPES.GRID_1.CELL( FRM_CADPES.GRID_1.VALUE, 1 )
cNOME := FRM_CADPES.GRID_1.CELL( FRM_CADPES.GRID_1.VALUE, 2 )
end
oConnection:Setsql("SELECT * FROM CADSERV WHERE CPF='"+cCPF+"'")
MSGINFO("SELECT CPF,NOME FROM CADSERV WHERE CPF='"+cCPF+"'")
if !oConnection:Open()
msgstop("Não foi possÃvel conectar a Base de Dados")
endif
Load window FRM_SERVID
MSGINFO(cCPF)
FRM_SERVID.TxCpf.value:=transform(cCpf,"@R 999.999.999-99")
*FRM_SERVID.TxNome.value:=cNome
FRM_SERVID.TxNome.VALUE:=oConnection:Fields["NOME"]:value //é aqui que da erro
title iif(n = 2,'Alterando Cadastro do Sevidor ','Incluindo nôvo Cadastro de Sevidor')
*Font 'ms sans serif' size 8
*on key escape action form1a.button2.onclick
FRM_SERVID.center
activate window FRM_SERVID
case n == 3
Str := "DELETE FROM CADSERV WHERE CPF="+str(FRM_CADPES.grid_1.cell(FRM_CADPES.grid_1.value,1))
if msgyesno('Deletar este registro? '+hb_osnewline()+FRM_CADPES.grid_1.cell(FRM_CADPES.grid_1.value,2),'Confirma')
oConnection:Setsql( Str )
if !oConnection:Open()
msgstop("Não foi possivel deletar o registro")
else
n := FRM_CADPES.grid_1.value
FRM_CADPES.grid_1.deleteitem( n )
FRM_CADPES.grid_1.value := iif(n > 1, n-1, 1)
Frm_CADPES.statusbar.item(1) := "Registro: "+;
ltrim(str(Frm_CADPES.grid_1.value))+" of "+alltrim(str(Frm_CADPES.grid_1.itemcount))
end
oConnection:Close()
Frm_CADPES.grid_1.setfocus
end
endcase
Frm_CADPES.Grid_1.SetFocus()
return
*--------------------------------------------------------------------------------
procedure salva_dados(n)
*--------------------------------------------------------------------------------
local Str
* MSGINFO(str(n,2))
if n = 1
*Str := "INSERT INTO CADSERV (CPF,NOME,DATA_NASCTO,EST_CIVIL,NATURALIDADE,NACIONALIDADE,SEXO,RACA_COR,ESCOLARIDADE,FORMACAO,IDENTIDADE,"+;
* "ORGA_EMISSOR,UF_ORG_EMISSOR_RG,DT_EMISSAO_RG,PIS_PASEP,TITULO_ELEITOR,PAI,MAE,ENDERECO,NUMERO,CIDADE,BAIRRO,COMPLEMENTO,CEP,EMAIL)"+;
Str := "INSERT INTO CADSERV (CPF,NOME,DATA_NASCTO,EST_CIVIL)"+;
" VALUES ('"+TIRAMASCARA_CHR(FRM_SERVID.TxCPF.VALUE)+;
"','"+Alltrim(FRM_SERVID.TxNome.VALUE)+;
"','"+DTOC(FRM_SERVID.TxNascimento.VALUE)+;
"','"+Alltrim(Str(FRM_SERVID.Cb_EstCivil.VALUE))+;
"')"
/*"','"+Alltrim(FRM_SERVID.TxNaturalid.VALUE)+;
"','"+Alltrim(Str(FRM_SERVID.Cb_Nacionalid.VALUE))+;
"','"+Alltrim(Str(FRM_SERVID.Cb_Sexo.VALUE))+;
"','"+Alltrim(Str(FRM_SERVID.Cb_RacaCor.VALUE))+;
"','"+"FRM_SERVID.Cb_Escolaridade.VALUE"+;
"','"+"FRM_SERVID.Cb_Formacao.VALUE"+;
"','"+"FRM_SERVID.TxIdentidade.VALUE"+;
"','"+Alltrim(FRM_SERVID.TxOrgEmissor.VALUE)+;
"','"+Alltrim(FRM_SERVID.TxUfEmiRg.VALUE)+;
"','"+"FRM_SERVID.TxDtEmiRg.VALUE"+;
"','"+Alltrim(FRM_SERVID.TxPisPasep.VALUE)+;
"','"+Strzero(val(FRM_SERVID.TxTitEleitor.VALUE),11)+;
"','"+Alltrim(FRM_SERVID.TxNomePai.VALUE)+;
"','"+Alltrim(FRM_SERVID.TxNomeMae.VALUE)+;
"','"+Alltrim(FRM_SERVID.Txt_RuaAv.VALUE)+;
"','"+"FRM_SERVID.Txt_Numero.VALUE"+;
"','"+Alltrim(FRM_SERVID.Txt_Cidade.VALUE)+;
"','"+Alltrim(FRM_SERVID.Txt_Bairro.VALUE)+;
"','"+Alltrim(FRM_SERVID.Txt_Complemento.VALUE)+;
"','"+Alltrim(FRM_SERVID.Txt_CEP.VALUE)+;
"','"+Alltrim(FRM_SERVID.TxEmail.VALUE)+;
"')"*/
msgstop( Str )
else
cCPF := "'"+Alltrim(FRM_SERVID.TxCPF.VALUE)+"'"
Str := "UPDATE CADSERV SET NOME='"+Alltrim(FRM_SERVID.TxNome.VALUE)+"',"+;
" DATA_NASCTO='"+CTOD(FRM_SERVID.TxNascimento.VALUE) + "'," + ;
" EST_CIVIL='" + Alltrim(Str(FRM_SERVID.Cb_EstCivil.VALUE)) + "'" + ;
" NATURALIDADE='" + Alltrim(Str(FRM_SERVID.TxNauralid.VALUE)) + "'" + ;
" NACIONALIDADE='" + Alltrim(Str(FRM_SERVID.Cb_Nacinalid.VALUE)) + "'" + ;
" SEXO='" + Alltrim(Str(FRM_SERVID.Cb_Sexo.VALUE)) + "'" + ;
" RACA_COR='" + Alltrim(Str(FRM_SERVID.Cb_RacaCor.VALUE)) + "'" + ;
" ESCOLARIDADE='" + (FRM_SERVID.Cb_Escolaridade.VALUE) + "'" + ;
" FORMACAO='" + (FRM_SERVID.Cb_Formacao.VALUE) + "'" + ;
" IDENTIDADE='" + (FRM_SERVID.TxIdentidade.VALUE) + "'" + ;
" ORGA_EMISSOR='" + Alltrim(FRM_SERVID.TxOrgEmissor.VALUE) + "'" + ;
" UF_ORG_EMISSOR_RG='" + Alltrim(FRM_SERVID.TxUfEmiRg.VALUE) + "'" + ;
" DT_EMISSAO_RG='" + CTOD(FRM_SERVID.TxDtEmiRg.VALUE) + "'" + ;
" PIS_PASEP='" + Alltrim(FRM_SERVID.TxPisPasep.VALUE) + "'" + ;
" TITULO_ELEITOR='" + Strzero(val(FRM_SERVID.TxTitEleitor.VALUE),11) + "'" + ;
" PAI='" + Alltrim(FRM_SERVID.TxNomePai.VALUE) + "'" + ;
" MAE='" + Alltrim(FRM_SERVID.TxNomeMae.VALUE) + "'" + ;
" ENDERECO='" + Alltrim(FRM_SERVID.Txt_RuaAv.VALUE) + "'" + ;
" NUMERO='" + FRM_SERVID.Txt_Numero.VALUE + "'" + ;
" CIDADE='" + Alltrim(FRM_SERVID.Txt_Cidade.VALUE) + "'" + ;
" BAIRRO='" + Alltrim(FRM_SERVID.Txt_Cidade.VALUE) + "'" + ;
" COMPLEMENTO='" + Alltrim(FRM_SERVID.Txt_Complemento.VALUE) + "'" + ;
" CEP='" + Alltrim(FRM_SERVID.Txt_CEP.VALUE) + "'" + ;
" EMAIL='" + Alltrim(FRM_SERVID.TxEmail.VALUE) + "'" + ;
" WHERE CPF =" + cCPF
//msgstop( Str )
end
oConnection:Setsql( Str )
if !oConnection:Open()
msgstop("Não foi possivel fazer a operação")
end
oConnection:Close()
if n == 1
Carrega_Dados( FRM_CADPES.GRID_1.itemcount+1 )
else
FRM_CADPES.GRID_1.CELL( FRM_CADPES.GRID_1.VALUE, 1 ) := Alltrim(FRM_SERVID.TxCPF.VALUE)
FRM_CADPES.GRID_1.CELL( FRM_CADPES.GRID_1.VALUE, 2 ) := Alltrim(FRM_SERVID.TxNome.VALUE)
end
FRM_CADPES.statusbar.item(1) := "Register "+ltrim(str(FRM_CADPES.GRID_1.VALUE))+" de "+alltrim(str(FRM_CADPES.GRID_1.itemcount))
FRM_SERVID.release
return
*------------------------------------------------------------------
/*
*/
Function Confirmar_Saida()
If MSGYesNo( "Confirma SaÃda do Sistema??" , "SCPP" )
Frm_Princ.Release
EndIf
Return Nil
*-----------------------------------------------------------------
***************************************
Procedure TiraMascara_CHR(var)
Local i := 0
Local cVAR := AllTrim( VAR )
Local cNewVAR := ""
For i := 1 To Len( cVAR )
cNewVAR += Iif( IsDigit( Substr( cVAR , i , 1 ) ) , Substr( cVAR , i , 1 ) , "" )
Next
VAR := cNewVAR
Return VAR
Vejam que no inicio, trago os campos CPF E NOME para o GRID, quando chamo o evento "Editar" já trago do grid o FORM de apresentação dos dados, o CPF e o NOME. Então seleciono o registro equivalente aquele CPF na Tabela CADSERF.FDB e quero atribuir os valores dos demais campos(cerca de 15) às variáveis criadas, por exemplo:vamos supor que tenho 15 variáveis e quero atribuir a elas o valor dos campos equivalentes na tabela, ficaria assim:
Variável dDataNascimeno receber o valor do campo DATA_NASCIMENO do registro selecionado na tabela;
Variável cPai receber o valor do campo PAI do registro selecionado na tabela;
Variável cMae receber o valor do campo MAE do registro selecionado na tabela;
E assim sucessivamente.
No codigo acima(LINHA 104) tento atribuir à FRM_SERVID.TxNome.VALUE o valor do campo NOME da tabela e é aà que dá erro, talvez o comando esteja errado, pois peguei de outro exemplo.
Obsevem que não foi icluida nenhuma lib.
Abraço
Luiz