fabin01 Posted September 17, 2009 Report Share Posted September 17, 2009 e aew galera blzinha... o luiz e outros parceiros me ajudou a fazer criaçao de tabaelas e tals no mysql os caras sao feras mesmo viu mto bons ... agora para salvar dados nela como vou fazer minha dialog ja ta pronta com o botao salvar e as editbox tbm estao prontas como devo proceder?? valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 Pelles C Editado por - fabin01 on 24/09/2009 16:16:30 Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 17, 2009 Author Report Share Posted September 17, 2009 e aew galera blzinha... o luiz e outros parceiros me ajudou a fazer criaçao de tabaelas e tals no mysql os caras sao feras mesmo viu mto bons ... agora para salvar dados nela como vou fazer minha dialog ja ta pronta com o botao salvar e as editbox tbm estao prontas como devo proceder?? valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 Pelles C Editado por - fabin01 on 24/09/2009 16:16:30 Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted September 17, 2009 Report Share Posted September 17, 2009 No inicio do PRG de cadastro ou de sua function como quiser.. Abra o DB USE "cadastro" as "Select * from cadastro" Alias "CADASTRO" New Via "MySQL" /-- Seu Botão com suas variaveis substitua estas minhas Redefine Button obtn Prompt "Salvar" ID 4016 Of oDlg ; Action Registra(@CCOMPRA,@CVALIDA,@CMARCA,@CNUMERO,@CLOJA,@CVALOR,@CDONO,@CCARRO) //---- Sua Function de Registro.. Function Registra(CCOMPRA,CVALIDA,CMARCA,CNUMERO,CLOJA,CVALOR,CDONO,CCARRO) cInsert:= "Insert into CADASTRO (DTCOMPRA,VALIDADE,MARCA,NUMERO,LOJA,VALOR,DONO,VEICULO) Values ("+; sqldate(cCompra)+", "+; sqldate(cValida)+", "+; sqlStr(cMarca)+", "+; sqlStr(cNumero)+", "+; sqlStr(cLoja)+", "+; sqlNtrim(cValor)+", "+; sqlstr(cDono)+", "+; sqlstr(cCarro)+") " SQLExecute( cInsert ) Return .t. id=code>id=code>Para ver se registrou Abra o DB USE "cadastro" as "Select * from cadastro" Alias "CADASTRO" New Via "MySQL" xBrowse()id=code>id=code>Luiz Arruda - Corumba(MS) FiveWin 9.04 [x]Harbour xDev WS -- Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia. - Não Abandone Seu Tópicoid=red> Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 17, 2009 Author Report Share Posted September 17, 2009 citação:No inicio do PRG de cadastro ou de sua function como quiser.. Abra o DB USE "cadastro" as "Select * from cadastro" Alias "CADASTRO" New Via "MySQL" /-- Seu Botão com suas variaveis substitua estas minhas Redefine Button obtn Prompt "Salvar" ID 4016 Of oDlg ; Action Registra(@CCOMPRA,@CVALIDA,@CMARCA,@CNUMERO,@CLOJA,@CVALOR,@CDONO,@CCARRO) //---- Sua Function de Registro.. Function Registra(CCOMPRA,CVALIDA,CMARCA,CNUMERO,CLOJA,CVALOR,CDONO,CCARRO) cInsert:= "Insert into CADASTRO (DTCOMPRA,VALIDADE,MARCA,NUMERO,LOJA,VALOR,DONO,VEICULO) Values ("+; sqldate(cCompra)+", "+; sqldate(cValida)+", "+; sqlStr(cMarca)+", "+; sqlStr(cNumero)+", "+; sqlStr(cLoja)+", "+; sqlNtrim(cValor)+", "+; sqlstr(cDono)+", "+; sqlstr(cCarro)+") " SQLExecute( cInsert ) Return .t. id=code>id=code>Para ver se registrou Abra o DB USE "cadastro" as "Select * from cadastro" Alias "CADASTRO" New Via "MySQL" xBrowse()id=code>id=code>Luiz Arruda - Corumba(MS) FiveWin 9.04 [x]Harbour xDev WS -- Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia. - Não Abandone Seu Tópicoid=red> id=quote>id=quote>luiz seu eu tiver uma funçao no incio dela coloco o use para abir a tabela neh?? no caso nao tenho que declarar as variaveis como local nao?? ou desse jeito funciona?? me explica o que é sqldate que vc pos em alguns e sqlnumero em outros seria tipo? se for como é para caracter?? creio que aqui ja tenho que definir qual é chave primaria, o que é autoincrement, o que pode ser nulo ou nao e por ai vai.. como posso fazer?? valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 Pelles C Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted September 17, 2009 Report Share Posted September 17, 2009 Vou tentar explicar.. SqlDate para Campo data SqlStr para Campo Caracter SqlNtrim para Campo Numericoid=code>id=code>Eu não Trabalho muito com Function, eu separo todos os módulos em PRG para meu PRG não fique muito grande.. Em todo prg ou function eu abro a tabela que quero usar no Inicio por exemplo; ****************** ** Mostrar.prg ** Function Mostrar() Variaveis Etc... //---- Em SQL eu ainda to trabalhando só com uma ainda.. USE "cadastro" as "Select * from cadastro" Alias "CADASTRO" New Via "MySQL" Browse() //-------- isto Não é necessário fiz só pra mostrar que abre a tabela cadastro no browseid=red> /-- Define Dialog... etc... etc... Activate Dialogid=code>id=code>Não esqueça de fechar o BD ao sair da dialog.. Luiz Arruda - Corumba(MS) FiveWin 9.04 [x]Harbour xDev WS -- Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia. - Não Abandone Seu Tópicoid=red> Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 18, 2009 Author Report Share Posted September 18, 2009 citação:Vou tentar explicar.. SqlDate para Campo data SqlStr para Campo Caracter SqlNtrim para Campo Numericoid=code>id=code>Eu não Trabalho muito com Function, eu separo todos os módulos em PRG para meu PRG não fique muito grande.. Em todo prg ou function eu abro a tabela que quero usar no Inicio por exemplo; ****************** ** Mostrar.prg ** Function Mostrar() Variaveis Etc... //---- Em SQL eu ainda to trabalhando só com uma ainda.. USE "cadastro" as "Select * from cadastro" Alias "CADASTRO" New Via "MySQL" Browse() //-------- isto Não é necessário fiz só pra mostrar que abre a tabela cadastro no browseid=red> /-- Define Dialog... etc... etc... Activate Dialogid=code>id=code>Não esqueça de fechar o BD ao sair da dialog.. Luiz Arruda - Corumba(MS) FiveWin 9.04 [x]Harbour xDev WS -- Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia. - Não Abandone Seu Tópicoid=red> id=quote>id=quote>luiz vc so me respondeu uma das perguntas e no caso nao tenho que declarar as variaveis como local nao?? ou desse jeito funciona?? me explica o que é sqldate que vc pos em alguns e sqlnumero em outros seria tipo? se for como é para caracter?? creio que aqui ja tenho que definir qual é chave primaria, o que é autoincrement, o que pode ser nulo ou nao e por ai vai.. como posso fazer?? valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 Pelles C Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted September 18, 2009 Report Share Posted September 18, 2009 citação: citação:Vou tentar explicar.. SqlDate para Campo data SqlStr para Campo Caracter SqlNtrim para Campo Numericoid=code>id=code>Eu não Trabalho muito com Function, eu separo todos os módulos em PRG para meu PRG não fique muito grande.. Em todo prg ou function eu abro a tabela que quero usar no Inicio por exemplo; ****************** ** Mostrar.prg ** Function Mostrar() Variaveis Etc... //---- Em SQL eu ainda to trabalhando só com uma ainda.. USE "cadastro" as "Select * from cadastro" Alias "CADASTRO" New Via "MySQL" Browse() //-------- isto Não é necessário fiz só pra mostrar que abre a tabela cadastro no browseid=red> /-- Define Dialog... etc... etc... Activate Dialogid=code>id=code>Não esqueça de fechar o BD ao sair da dialog.. Luiz Arruda - Corumba(MS) FiveWin 9.04 [x]Harbour xDev WS -- Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia. - Não Abandone Seu Tópicoid=red> id=quote>id=quote>luiz vc so me respondeu uma das perguntas e no caso nao tenho que declarar as variaveis como local nao?? ou desse jeito funciona?? me explica o que é sqldate que vc pos em alguns e sqlnumero em outros seria tipo? se for como é para caracter?? creio que aqui ja tenho que definir qual é chave primaria, o que é autoincrement, o que pode ser nulo ou nao e por ai vai.. como posso fazer?? valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 Pelles C id=quote>id=quote>Vou Repetir esta parte acho que C não viu Use SqlDateid=red> para Campo data USe SqlStrid=red> para Campo Caracter Use SqlNtrimid=red> para Campo Numericoid=code>id=code>Sim.. TODA variavél tem que ser declarada de alguma forma, ai vai da sua necessidade, Local,Public,Private,Static não coloquei pq. a gente vai direto no ponto x da questão.. e Se vc. não declarar uma variavel não terá com vc. digitar no Get, nem dará certo pq. ao abrir a dialog já da pau... do mesmo jeito que não existe IF sem Endif e For sem Next Luiz Arruda - Corumba(MS) FiveWin 9.04 [x]Harbour xDev WS -- Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia. - Não Abandone Seu Tópicoid=red> Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 18, 2009 Author Report Share Posted September 18, 2009 luiz e em relaçao a chave primaria, campo de auto incremento como posso fazer por que vou precisar vc sabe?? valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 Pelles C Quote Link to comment Share on other sites More sharing options...
Luisão Posted September 18, 2009 Report Share Posted September 18, 2009 Se ele é auto-incremento o Banco de Dados cuida dele sozinho, você nem precisa gravá-lo. É só fazer um Insert normal que ele coloca o código automático para você. Luis Fernando Jr.(Luisão) "Seize the day or die regretting the time you lost" FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 18, 2009 Author Report Share Posted September 18, 2009 citação:Se ele é auto-incremento o Banco de Dados cuida dele sozinho, você nem precisa gravá-lo. É só fazer um Insert normal que ele coloca o código automático para você. Luis Fernando Jr.(Luisão) "Seize the day or die regretting the time you lost" FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY id=quote>id=quote>salve luizao blz?? mas entao é so nao slavar ele que o banco auto incrementa?? nao entendi?? e em relaçao a chave primaria e campos nulos e nao nulos como faço ?? valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 Pelles C Quote Link to comment Share on other sites More sharing options...
Luisão Posted September 18, 2009 Report Share Posted September 18, 2009 Por exemplo, você tem na tabela: CODIGO = bigint Auto-incremento NOME = varchar NULL APELIDO = varchar NULL NASC = date NOT NULL Ao fazer um insert, seria assim: "Insert into tabela (NOME,NASC) values ('Luis','1989-09-18')" O CODIGO, já seria calculado "internamente" Quanto aos campos, o APELIDO ficaria como NULL na tabela (ao menos que ele possua algum DEFAULT). Já NOME ficaria gravado com "Luis", pois você passou este campo no comando. Entendeu ? Luis Fernando Jr.(Luisão) "Seize the day or die regretting the time you lost" FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 18, 2009 Author Report Share Posted September 18, 2009 minha duvida e ai luizao pq to criando minha tabela deste modo Aadd(aPrograma, {"CodPrograma", "N",005,000}) Aadd(aPrograma, {"Nome", "C",050,000}) Aadd(aPrograma, {"Autor", "C",035,000})id=code>id=code>como vou declara que é auto incremento, chave primaria ese é nulo ou nao?? valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 Pelles C Quote Link to comment Share on other sites More sharing options...
Luisão Posted September 18, 2009 Report Share Posted September 18, 2009 A estrutura dos campos é essa: 2 - Tipo do campo representado pela primeira letra: · CHAR (texto) · NUMERICO · DATA · LÓGICO · MEMO 3 - Tamanho do campo em bytes. 4 - Número de casas decimais. 5 - Um flag, indicando com valor verdadeiro se este campo deve ser criado como “NOT NULLâ€. 6 - Valor lógico, indicando se o campo possuirá ou não o flag “UNIQUEâ€. 7 - Valor lógico, indicando se o campo possuirá ou não o flag “AUTOINCREMENTâ€. 8 - Valor lógico, indicando se o campo possuirá ou não o flag “PRIMARY KEY†9 - Indica a expressão “DEFAULT†para o campo, caso o usuário não a preencha. 10 - Valor lógico, indicando se o tipo deste campo é um tipo nativo do servidor SQL.id=code>id=code>Luis Fernando Jr.(Luisão) "Seize the day or die regretting the time you lost" FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 18, 2009 Author Report Share Posted September 18, 2009 citação:A estrutura dos campos é essa: 2 - Tipo do campo representado pela primeira letra: · CHAR (texto) · NUMERICO · DATA · LÓGICO · MEMO 3 - Tamanho do campo em bytes. 4 - Número de casas decimais. 5 - Um flag, indicando com valor verdadeiro se este campo deve ser criado como “NOT NULLâ€. 6 - Valor lógico, indicando se o campo possuirá ou não o flag “UNIQUEâ€. 7 - Valor lógico, indicando se o campo possuirá ou não o flag “AUTOINCREMENTâ€. 8 - Valor lógico, indicando se o campo possuirá ou não o flag “PRIMARY KEY†9 - Indica a expressão “DEFAULT†para o campo, caso o usuário não a preencha. 10 - Valor lógico, indicando se o tipo deste campo é um tipo nativo do servidor SQL.id=code>id=code>Luis Fernando Jr.(Luisão) "Seize the day or die regretting the time you lost" FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY id=quote>id=quote>ficaria como entao.. vano supor que este codigo que vou colocar aqui é chave primaria nao pode ser nulo e é auto incremento Aadd(aPrograma, {"CodPrograma", "N",005,000}) Aadd(aPrograma, {"CodPrograma","N",005,000,true,,true,true}) seria deste modo, ou esta errado?? como afria? valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 WS Quote Link to comment Share on other sites More sharing options...
Luisão Posted September 18, 2009 Report Share Posted September 18, 2009 Sim, dessa forma ele seria criado com NOT NULL, PRIMARY KEY e AUTOINCREMENT. Lembrando que TRUE é .T. e FALSE é .F. Luis Fernando Jr.(Luisão) "Seize the day or die regretting the time you lost" FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 18, 2009 Author Report Share Posted September 18, 2009 citação:Sim, dessa forma ele seria criado com NOT NULL, PRIMARY KEY e AUTOINCREMENT. Lembrando que TRUE é .T. e FALSE é .F. Luis Fernando Jr.(Luisão) "Seize the day or die regretting the time you lost" FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY id=quote>id=quote>a tah ok eu fiz deste modo... porem esta dando este erro id=code>id=code>sera que tenho que criar uam funçao para cada criaçao de tabela?? ta ai o codigo Function Verificacao_criacao_Tabelas() //Tabela Cadastro Clientes aCadCliente:={} //Variavel que recebe os dados para criaçao da atbeça Aadd(aCadCliente, {"CodCliente", "N", 005,000,.t.,,.t.,.t.}) Aadd(aCadCliente, {"Empresa", "C",035,000,.t.}) Aadd(aCadCliente, {"Contato", "C",035,000}) Aadd(aCadCliente, {"Email", "C",050,000,.t.}) Aadd(aCadCliente, {"Telefone", "C",011,000}) IF (! Table("Cadastro_Clientes")) // se tabela existe sai do if senao pede pra criar IF msgYesNo("Tabela Cadastro de Cliente Inexistente"+CRLF+"Deseja Cria-la ?","...::Tabela Cadastro Cliente") dbcreate("Cadastro_Clientes", aCadCliente) // criaçao da tabela EndIF End if //Tabela Cadastro Contatos aCadContato:={} Aadd(aCadContato, {"CodContato", "N", 005,000,.t.,,.t.,.t.}) Aadd(aCadContato, {"Nome", "C",035,000,.t.}) Aadd(aCadContato, {"Cidade", "C",035,000}) Aadd(aCadContato, {"UF", "C",002,000}) Aadd(aCadContato, {"DataContato", "D",010,000}) Aadd(aCadContato, {"Telefone", "C",011,000}) Aadd(aCadContato, {"Email", "C",050,000,.t.}) Aadd(aCadContato, {"Empresa", "C",050,000,.t.}) IF (! Table("Cadstro_Contatos")) IF msgYesNo("Tabela Cadastro de Contattos inexistente"+CRLF+"Deseja Cria-la","...::Tabela Cadastro Contatos") dbcreate("Cadastro_Contatos", aCadContato) EndIf EndIf // Tabela Grupos de Atendimentos aGrupoAtendimento:={} Aadd(aGrupoAtendimento, {"CodGrupoAtendimento", "N", 005,000,.t.,,.t.,.t.}) Aadd(aGrupoAtendimento, {"Descricao", "C", 100,000,.t.}) Aadd(aGrupoAtendimento, {"Obs", "C",100,000,.t.}) IF (! Table("Grupos_Atendimentos")) IF msgYesNo("Tabela Grupo de Atenidimentos iexistente"+CRLF+"Deseja cria-la","...::Tabela Grupo Atendimentos") dbccreate("Grupos_Atendimentos", aGrupoAtendimento) EndIf EndIf // Tabela Programas aPrograma:={} Aadd(aPrograma, {"CodPrograma", "N",005,000,.t.,,.t.,.t.}) Aadd(aPrograma, {"Nome", "C",050,000,.t.}) Aadd(aPrograma, {"Autor", "C",035,000,.t.}) IF (! Table("Programas")) IF msgYesNo("Tabela Programas iexistente"+CRLF+"Deseja cria-la","...::Tabela Programas") dbccreate("Programas", aPrograma) EndIf EndIf // Tabela Atendimentos aAtendimento:={} Aadd(aAtendimento, {"CodAtendimento", "N",005,000,.t.,,.t.,.t.}) Aadd(aAtendimento, {"CodContato", "N",005,000,.t.}) Aadd(aAtendimento, {"CodPrograma", "N",005,000,.t.}) Aadd(aAtendimento, {"CodGrupoAtendimento", "N",005,000,.t.}) Aadd(aAtendimento, {"DataAtendimento", "D",010,000,.t.}) Aadd(aAtendimento, {"HoraInicial", "C",005,000}) Aadd(aAtendimento, {"HoraFinal", "C",005,000}) Aadd(aAtendimento, {"Status", "C",020,000,.t.}) Aadd(aAtendimento, {"Descricao", "C",100,000}) IF (! Table("Atendimentos")) IF msgYesNo("Tabela Atendimentos iexistente"+CRLF+"Deseja cria-la","...::Tabela Atendimentos") dbccreate("Atendimentos", aAtendimento) EndIf EndIf ? "Estou conectado ao DB: ",ToString(sqlArray("SELECT DATABASE()")) ? "Os arquivos estão neste endereço: ",; ToString(sqlArray("SHOW VARIABLES WHERE VARIABLE_NAME = 'DATADIR'")),; "deverá ter pastas com o nome da suas DB e arquivos.FRM que são as tabelas, não abra os FRM manualmente é perigoso explodi-los" Return .t.id=code>id=code>valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 WS Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 18, 2009 Author Report Share Posted September 18, 2009 citação:Tire uma virgula daqui Aadd(aPrograma, {"CodPrograma", "N",005,000,.t.,,id=red>.t.,.t.})id=code>id=code>Veja se Resolve... Luiz Arruda - Corumba(MS) FiveWin 9.04 [x]Harbour xDev WS -- Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia. - Não Abandone Seu Tópicoid=red> id=quote>id=quote>se eu tirar ao ives do .t. ficar na posiçao sete vai ficar na posiçao 6 e posiçao 6 é unique acho que o erro nao é ai nao o que pode ser luiz? achei o erro ta vendo la tem tres com DBCCid=red>REATE Ai tirei e RODOU PERFEITAMENTE Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 WS Editado por - fabin01 on 18/09/2009 14:18:08 Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 18, 2009 Author Report Share Posted September 18, 2009 citação:No inicio do PRG de cadastro ou de sua function como quiser.. Abra o DB USE "cadastro" as "Select * from cadastro" Alias "CADASTRO" New Via "MySQL" /-- Seu Botão com suas variaveis substitua estas minhas Redefine Button obtn Prompt "Salvar" ID 4016 Of oDlg ; Action Registra(@CCOMPRA,@CVALIDA,@CMARCA,@CNUMERO,@CLOJA,@CVALOR,@CDONO,@CCARROid=red>) //---- Sua Function de Registro.. Function Registra(CCOMPRA,CVALIDA,CMARCA,CNUMERO,CLOJA,CVALOR,CDONO,CCARRO) cInsert:= "Insert into CADASTRO (DTCOMPRA,VALIDADE,MARCA,NUMERO,LOJA,VALOR,DONO,VEICULO) Values ("+; sqldate(cCompra)+", "+; sqldate(cValida)+", "+; sqlStr(cMarca)+", "+; sqlStr(cNumero)+", "+; sqlStr(cLoja)+", "+; sqlNtrim(cValor)+", "+; sqlstr(cDono)+", "+; sqlstr(cCarro)+") " SQLExecute( cInsert ) Return .t. id=code>id=code>Para ver se registrou Abra o DB USE "cadastro" as "Select * from cadastro" Alias "CADASTRO" New Via "MySQL" xBrowse()id=code>id=code>Luiz Arruda - Corumba(MS) FiveWin 9.04 [x]Harbour xDev WS -- Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia. - Não Abandone Seu Tópicoid=red> id=quote>id=quote>luiz no caso das variaveis eu declaro elas la na minha dialog sem o @ e faço o action com o @ seria isso?? eu teria que por exemplo edtbox1 ia ter que receber uma variavelk para ser gravada no banco como faço isso? é com redefine?? valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 WS Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted September 18, 2009 Report Share Posted September 18, 2009 citação:luiz no caso das variaveis eu declaro elas la na minha dialog sem o @ e faço o action com o @ seria isso?? id=quote>id=quote>Isso Mesmo na mosca citação:eu teria que por exemplo edtbox1 ia ter que receber uma variavelk para ser gravada no banco como faço isso? é com redefine?? valews id=quote>id=quote>// // Function SuaFunction() Local cNome:=Space(40) // Define Dialog odlg pipipi pópópó Redefine Get oGet Var cNomer ID Of oDlg Redefine Button ... Action Salvar(@cNome) Activate Dialog ... // // Function Salvar(cNome) cInsert:= "Insert into CADASTRO (NOME) Values ("+; sqlStr(cNome)+", "+; SQLExecute( cInsert )´id=code>id=code>Não Generaliza a coisa,, Ãsto ai é só um exemplo onde to mostrando como gravar a variavel cNome no campo NOME da tabela.. Testa ai.. Luiz Arruda - Corumba(MS) FiveWin 9.04 [x]Harbour xDev WS -- Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia. - Não Abandone Seu Tópicoid=red> Quote Link to comment Share on other sites More sharing options...
Luisão Posted September 18, 2009 Report Share Posted September 18, 2009 Só para explicar para o Fábio, quando você passa uma variável com @ para um função, você está passando ela por referência. Caso passe-a sem @, você está passando ela por valor. Luis Fernando Jr.(Luisão) "Seize the day or die regretting the time you lost" FWH8.1 + SQLLIB 1.9d + xHB 1.10 + xDev 0.65 + @SAY Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 18, 2009 Author Report Share Posted September 18, 2009 vou testar aqui luiz.. so uma pergunta antes de testar no meu campo cod cliente é auto incremento, creio que na dialog nao vai aparecer este numero tem como eu fazer ele aparecer, por exemplo voui cadastraro primeiro a ficao numero 1 no codigo depois quando abrir novamente o codigo ja vai estar com o umero 2 como faço isso? valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 WS Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted September 18, 2009 Report Share Posted September 18, 2009 citação:vou testar aqui luiz.. so uma pergunta antes de testar no meu campo cod cliente é auto incremento, creio que na dialog nao vai aparecer este numero tem como eu fazer ele aparecer, por exemplo voui cadastraro primeiro a ficao numero 1 no codigo depois quando abrir novamente o codigo ja vai estar com o umero 2 como faço isso? valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 WS id=quote>id=quote>Testa com isso e veja se vai dar certo... eu não testei com SQL Depois do USE cNum=Reccount() + 1 * Redefine Get oGet Var cNum ID Of odlg When(.f.)id=code>id=code>O resto é a mesma coisa do exemplo acima.. só trocando o sqlStr(cVar) pelo sqlNtrim(cNum) Luiz Arruda - Corumba(MS) FiveWin 9.04 [x]Harbour xDev WS -- Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia. - Não Abandone Seu Tópicoid=red> Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted September 18, 2009 Report Share Posted September 18, 2009 Ops!! perai .. acho que tá errado esse exemplo ai soma os registros + 1 pelo que C tá dizendo vai somar de 2 em 2 retire o +1 e deixe somente o cNum=Reccount() da uma Testada ai nao na mesaid=size1> Luiz Arruda - Corumba(MS) FiveWin 9.04 [x]Harbour xDev WS -- Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia. - Não Abandone Seu Tópicoid=red> Editado por - ico on 18/09/2009 15:59:02 Quote Link to comment Share on other sites More sharing options...
fabin01 Posted September 18, 2009 Author Report Share Posted September 18, 2009 a certo entendi, ta dando certo aqui hehehe... agora é o seguinte luiz, tenho campos que nao pode ficar em branco... como faço para que nao hora que ele apertar salvar ou o editbox perder o foco se estiver vazio ele retorna uma mensagem informando para preencher e o foco vai para a edit em branco, entendue minha duvida?? valews Obrigado pela ATENÇÃO e AJUDA! "O homem deve criar as oportunidades e não somente encontrá-las." Fábio Igor (BH-MG) fabio.igor@hotmail.com Iniciante FWH 2.8 [x]Harbour 9.61 xdev 0.70 WS Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted September 18, 2009 Report Share Posted September 18, 2009 Tente assim Local cVar:=Space(50) Define Dialog ... Redefine Get oGet Var cVar ID Of oDlg ; Valid TestacVar(cVar) * Function TestacVar(cVar) IF cVar=" " MsgAlert("Campo não pode ser nulo","..::Aviso") Return .f. Endif Return .t. id=code>id=code>Luiz Arruda - Corumba(MS) FiveWin 9.04 [x]Harbour xDev WS -- Não existe nada de completamente errado no mundo mesmo um relógio parado consegue estar certo duas vezes por dia. - Não Abandone Seu Tópicoid=red> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.