nsouza
Membros-
Total de itens
323 -
Registro em
-
Última visita
Tudo que nsouza postou
-
Erro somente no desenvolvimento da aplicação
pergunta respondeu ao nsouza de nsouza em Delphi, Kylix
Foi isso que eu fiz, não não quer dar certo de forma alguma. function TfromCadastro.incluir: Boolean; var loSp : TSQLStoredProc; begin try try loSp := TSQLStoredProc.Create(nil); loSp.SQLConnection := Conn; loSp.StoredProcName:= 'SP_INSERT'; loSp.ParamByName('pcodigo' ).AsInteger := StrToInt(edtCodigo.Text); loSp.ParamByName('pdescricao' ).AsString := edtDescricao.Text; loSp.ExecProc except on e: exception do begin result := false; showmessage(e.Message + ' na rotina Incluir') end; end; finally FreeAndNil(loSp); end; end; -
Erro somente no desenvolvimento da aplicação
pergunta respondeu ao nsouza de nsouza em Delphi, Kylix
fiz a alteração, coloquei como minuscula as letras e deu o mesmo erro! -
Erro somente no desenvolvimento da aplicação
pergunta respondeu ao nsouza de nsouza em Delphi, Kylix
Jonas, estou fazendo um teste e criei um stored procedure, veja: CREATE PROCEDURE SP_INSERT ( pcodigo integer, pdescricao varchar(50)) as begin insert into teste (codigo, descricao) values (:pcodigo, :pDescricao); suspend; end // Do jeito que esta se eu executar pelo IBExpert funciona normalmente Agora na aplicação fiz assim: function TfromCadastro.incluir: Boolean; var loSp : TSQLStoredProc; begin try try loSp := TSQLStoredProc.Create(nil); loSp.SQLConnection := Conn; loSp.StoredProcName:= 'SP_INSERT'; loSp.ParamByName('PCODIGO' ).AsInteger := StrToInt(edtCodigo.Text); loSp.ParamByName('PDESCRICAO' ).AsString := edtDescricao.Text; loSp.ExecProc except on e: exception do begin result := false; showmessage(e.Message + ' na rotina Incluir') end; end; finally FreeAndNil(loSp); end; end; Nesta condição esta me retornando o mesmo erro: Paramentro PCodigo não encontrado Não entendi esse erro uma vez que o paramentro esta com o mesmo nome na stored procedure -
Erro somente no desenvolvimento da aplicação
pergunta respondeu ao nsouza de nsouza em Delphi, Kylix
Não deu certo, não é isso. A mensagem de erro agora é sql conection property requred for this operation -
Erro somente no desenvolvimento da aplicação
pergunta respondeu ao nsouza de nsouza em Delphi, Kylix
Eu fiz o texte no ibexpert usando a sintaxe e funcionou! Senão daria erro la tb. -
Colegas, o codigo abaixo apresenta o seguinte erro: " 'sqlExec: Parameter 'DATAFERIADO' not found'. o problema é que na tabela existe este campo, quando eu a linha de comando SQL: INSERT INTO FERIADOS (DATAFERIADO, DESCRICAO) VALUES (:DATAFERIADO,:DESCRICAO) ni IBEXPERT funcionou, mas na aplicação retorna este erro. alguém poderia de dar uma ajuda? Obrigado! function TfrmFeriadoEd.Incluir: Boolean; begin try sqlExec.Close; sqlExec.SQLConnection := FoSQLConn; sqlExec.sql.clear; sqlExec.sql.add('INSERT INTO FERIADOS '); sqlExec.sql.add(' ( DATAFERIADO, DESCRICAO) '); sqlExec.sql.add(' VALUES '); sqlExec.sql.add(' (:DATAFERIADO, :DESCRICAO)'); sqlExec.ParamByName('DATAFERIADO').AsDateTime := edtData.Date; sqlExec.ParamByName('DESCRICAO').AsString := edtDescricao.Text; //Se o registro for gravado a função retorna 1 Result := sqlExec.ExecSQL() = 1; except on e: exception do begin result := false; showmessage(e.Message + ' na rotina Incluir') end; end; end;
-
então verifique a definição do campo da sua tabela .. se voce definiu como TimeStamp então terá que usar .AsDateTime; nesse caso ficaria assim: loSp.ParamByName('PINICIOCONTRATO' ).AsDateTime := Cds_CondominioINICIOCONTRATO.AsDateTime; loSp.ParamByName('PFIMCONTRATO' ).AsDateTime := Cds_CondominioFIMCONTRATO.AsDateTime; abraço Pior que não, o dominio da minha tabela é D_Date type Date
-
Essa mensagem de erro ocorre porque houve erro na conversão de tipos o correto seria loSp.ParamByName('PINICIOCONTRATO' ).AsDate := Cds_CondominioINICIOCONTRATO.AsDate; loSp.ParamByName('PFIMCONTRATO' ).AsDate := Cds_CondominioFIMCONTRATO.AsDate; abraço Jhonas, estava assim, do jeito que você disse, mas da a mensagem de erro quando parou com o mouse por cima "Erroneous type" só aparace para mim .AsDateTime;
-
Caro Jhonas, obrigado pelo material, meu problema agora é quando executo a procedure abaixo, da a mensagem de erro: 'unknown ISC error 0' procedure TDM.Cds_CondominioBeforePost(DataSet: TDataSet); var loSp : TSQLStoredProc; begin try try loSp:= TSQLStoredProc.Create(self); loSp.SQLConnection := DBAcesso; loSp.StoredProcName := 'SP_CONDOMINIO_IUD'; loSp.ParamByName('PCONDOMINIOID' ).AsInteger := Cds_CondominioCONDOMINIOID.AsInteger; loSp.ParamByName('PNOME' ).AsString := Cds_CondominioNOME.AsString; loSp.ParamByName('PENDERECO' ).AsString := Cds_CondominioENDERECO.AsString; loSp.ParamByName('PNUMERO' ).AsInteger := Cds_CondominioNUMERO.AsInteger; loSp.ParamByName('PCOMPLEMENTO' ).AsString := Cds_CondominioCOMPLEMENTO.AsString; loSp.ParamByName('PBAIRRO' ).AsString := Cds_CondominioBAIRRO.AsString; loSp.ParamByName('PCIDADE' ).AsString := Cds_CondominioCIDADE.AsString; loSp.ParamByName('PESTADO' ).AsString := Cds_CondominioESTADO.AsString; loSp.ParamByName('PCEP' ).AsString := Cds_CondominioCEP.AsString; loSp.ParamByName('PEMAIL' ).AsString := Cds_CondominioEMAIL.AsString; loSp.ParamByName('PSINDICO' ).AsString := Cds_CondominioSINDICO.AsString; loSp.ParamByName('PTELEFONE' ).AsString := Cds_CondominioTELEFONE.AsString; loSp.ParamByName('PCELULAR' ).AsString := Cds_CondominioCELULAR.AsString; loSp.ParamByName('PQTDEAPT' ).AsInteger := Cds_CondominioQTDEAPT.AsInteger; loSp.ParamByName('PAPTINICIAL' ).AsInteger := Cds_CondominioAPTINICIAL.AsInteger; loSp.ParamByName('PAPTFINAL' ).AsInteger := Cds_CondominioAPTFINAL.AsInteger; loSp.ParamByName('PINICIOCONTRATO' ).AsDate := Cds_CondominioINICIOCONTRATO.AsDateTime; loSp.ParamByName('PFIMCONTRATO' ).AsDate := Cds_CondominioFIMCONTRATO.AsDateTime; loSp.ParamByName('PVLRCONDOMINIO' ).AsFloat := Cds_CondominioVLRCONDOMINIO.AsFloat; loSp.ParamByName('PVENCIMENTO' ).AsInteger := Cds_CondominioVENCIMENTO.AsInteger; loSp.ParamByName('POPR' ).AsString := 'I'; loSp.ParamByName('PUSUARIO' ).AsInteger := 1; loSp.ExecProc; except On E: Exception do ShowMessage('Erro ao executar stored procedure' + E.Message ) end; finally FreeAndNil(loSp); end; end;
-
Colegas, criei uma procedure, e a mesma funciona muito bem. Mas quando dá uma execessão no delphi aparece uma mensagem no formato nativo, eu gostaria de tratar este mensagem de uma forma mais amigavel para o usuário. A mensagem original é esta: Project Condominio.exe raised exception class TDBXErros whit message'exception 2' E_ACESSO_NEGADO Sem permissão para executar esta operação At procedure'SP_RAISE_ERROR' line: 22, col:12 At procedure 'SP_CONDOMINIO_IUD' line : 32, col:3'. Gostaria de mudar isso tudo para : "Usuário sem permissão para executar esta operação" Alguém poderia me dar uma ajuda? CREATE OR ALTER PROCEDURE SP_REISE_ERROR_USUARIO ( pusuario d_id, plogin d_login, pemail d_email) as declare variable v_count integer; begin /* verifica se o usuário tem os acesso necessários*/ select count(1) from acessos where usuarioid = :pusuario and FORMULARIO = 'CADASTRO DE USUÁRIOS' and incluir = 'S' into :v_count; if (v_count = 0) then begin exception E_ACESSO_NEGADO; end /*************** verifica se o login já existe *********************/ SELECT count(1) FROM USUARIOS WHERE login = :plogin INTO :V_COUNT; if (:V_COUNT > 0) then BEGIN exception e_login_existe; END /****************** verifica se o login já existe ******************/ SELECT count(1) FROM USUARIOS WHERE email = :pemail INTO :V_COUNT; if (:V_COUNT > 0) then BEGIN exception E_EMAIL_EXITE; END end
-
Colegas quando clico na grid para editar um registro me retorna a mensagem de erro: 'Stack overflow' Poderia me dar uma ajuda? Para entender envio os codigo abaixo Evento show do formulário: procedure TF_Acessos.FormShow(Sender: TObject); var Temp: TPermissao; begin inherited; Temp := TUsuario.GetInstance.GetPermissao(IntToStr(dcbModulo.KeyValue)); ToolButton1.Visible := Temp.Incluir; ToolButton2.Visible := Temp.Excluir; ToolButton3.Visible := Temp.Alterar; ToolButton4.Visible := Temp.Consultar; ToolButton5.Visible := Temp.Imprimir; end; Função GetPermisao: function TUsuario.GetPermissao(AModulo: string): TPermissao; var DbCon: TDBXConnection; Command: TDBXCommand; // Responsável em receber a instrução SQL, insert, update, delete Reader: TDBXReader; // Receber o result set executado pelo tdbxCom Temp: TPermissao; begin if FLogado then begin DbCon:= TDBXConnectionFactory.GetConnectionFactory.GetConnection('ADMCONDOMINIO','SYSDBA','MASTERKEY'); Command := DbCon.CreateCommand; Command.Text := 'SELECT INCLUIR, EXCLUIR, ALTERAR, CONSULTAR, IMPRIMIR '+ ' FROM ACESSOS WHERE USUARIOID = '+ intToStr(ID) + ' AND IDMODULO = '+ AMODULO; Reader := Command.ExecuteQuery; if reader.next then Begin Temp.Incluir := Reader.Value[0].GetAnsiString = 'S'; Temp.Excluir := Reader.Value[1].GetAnsiString = 'S'; Temp.Alterar := Reader.Value[2].GetAnsiString = 'S'; Temp.Consultar := Reader.Value[3].GetAnsiString = 'S'; Temp.Imprimir := Reader.Value[4].GetAnsiString = 'S'; Result := Temp; End; end else messageDlg('É necessário está logado para invocar este método!!',mtWarning, [mbOk],0); end;
-
qual é o código que está no botão salvar ? O codigo é este: procedure TF_Modelo.ac_salvarExecute(Sender: TObject); begin TClientDataSet(Ds.DataSet).Post; TClientDataSet(Ds.DataSet).ApplyUpdates(0); PageControl1.ActivePage := tbConsulta; end;
-
Veja se a propriedade do TDataSetProvider (chamada ResolveToDataSet) esta como True... se estiver coloque como False. abraço e Feliz Natal Deu certo. No entando quando eu clico no botão salvar esta salvando dois registros (duplicando no banco de dados) 1 registro com dados que estão nso edits e um registro com todos os campos vazios. Abaixo o codigo da minha storade procedure. procedure TDM.Cds_CondominioBeforePost(DataSet: TDataSet); var //loQry : TSQLQuery; loQry : TSQLDataSet; begin try try loQry := TSQLDataSet.Create(nil); loQry.SQLConnection := DBAcesso; loQry.CommandType := ctStoredProc; loQry.CommandText := 'SP_CONDOMINIO_IUD'; loQry.ParamByName('PCONDOMINIOID' ).AsInteger := StrToInt(F_Condominio.edtCodigo.text); loQry.ParamByName('PNOME' ).AsString := f_Condominio.edtNome.Text; loQry.ParamByName('PENDERECO' ).AsString := F_Condominio.edtEndereco.Text; loQry.ParamByName('PNUMERO' ).AsInteger := StrToInt(F_Condominio.edtNumero.Text); loQry.ParamByName('PCOMPLEMENTO' ).AsString := F_Condominio.edtComplemento.Text; loQry.ParamByName('PBAIRRO' ).AsString := F_Condominio.edtBairro.Text; loQry.ParamByName('PCIDADE' ).AsString := F_Condominio.edtCidade.Text; loQry.ParamByName('PESTADO' ).AsString := F_Condominio.edtUF.Text; loQry.ParamByName('PCEP' ).AsString := F_Condominio.edtCep.Text; loQry.ParamByName('PEMAIL' ).AsString := F_Condominio.edtEmail.Text; loQry.ParamByName('PSINDICO' ).AsString := f_Condominio.edtSindico.Text; loQry.ParamByName('PTELEFONE' ).AsString := F_Condominio.edtTelefone.Text; loQry.ParamByName('PCELULAR' ).AsString := F_Condominio.edtCelular.Text; loQry.ParamByName('PQTDEAPT' ).AsInteger := StrToInt(F_Condominio.edtQtdeApt.Text); loQry.ParamByName('PAPTINICIAL' ).AsInteger := StrToInt(F_Condominio.edtAptInicial.Text); loQry.ParamByName('PAPTFINAL' ).AsInteger := StrToInt(F_Condominio.edtAptFinal.Text); loQry.ParamByName('PINICIOCONTRATO' ).AsDate := StrToDate(F_Condominio.edtInicioContrato.Text); loQry.ParamByName('PFIMCONTRATO' ).AsDate := StrToDate(F_Condominio.edtFimContrato.Text); //loQry.ParamByName('PVRLCONDOMINIO' ).AsFloat := StrToFloat(F_Condominio.EdtValor.Text); loQry.ParamByName('PVLRCONDOMINIO' ).AsFloat := 60.00; loQry.ParamByName('PVENCIMENTO' ).AsInteger := StrToInt(F_Condominio.edtVencimento.Text); LoQry.ParamByName('POPR' ).AsString := 'I'; loQry.ParamByName('PUSUARIO' ).AsInteger := 1; loQry.ExecSQL(); except On E: Exception do ShowMessage(E.Message) end; finally FreeAndNil(loqry); end; end;
-
Colegas bom dia, estou usando um TSQLDataSet, TDataSetProvider, TClienteDataSet e um TSQLStoredProceudure Quando clico no botão Incluir da a mensagem de erro: Cds_Condominio: Cannot modify a read-only dataset' Abaixo uso os código, mas não consegui consertar este problema. Poderiam me ajudar por favor? Obrigado Codigo do botão Incluir: if not Ds.DataSet.Active then Ds.DataSet.Open; Ds.DataSet.Insert; end; Codigo no evento Before post do ClienteDataSet: Cds_Condominio with Sp_Condominio do // Stored Procedure begin Params[0].AsInteger := StrToInt(F_Condominio.edtCodigo.text); Params[1].AsString := f_Condominio.edtNome.Text; Params[2].AsString := F_Condominio.edtEndereco.Text; Params[3].AsInteger := StrToInt(F_Condominio.edtNumero.Text); Params[4].AsString := F_Condominio.edtComplemento.Text; Params[5].AsString := F_Condominio.edtBairro.Text; Params[6].AsString := F_Condominio.edtCidade.Text; Params[7].AsString := F_Condominio.edtUF.Text; Params[8].AsString := F_Condominio.edtCep.Text; Params[9].AsString := F_Condominio.edtEmail.Text; Params[10].AsString := F_Condominio.edtSindico.Text; Params[11].AsString := F_Condominio.edtTelefone.Text; Params[12].AsString := F_Condominio.edtCelular.Text; Params[13].AsInteger := StrToInt(F_Condominio.edtQtdeApt.Text); Params[14].AsInteger := StrToInt(F_Condominio.edtAptInicial.Text); Params[15].AsInteger := StrToInt(F_Condominio.edtAptFinal.Text); Params[16].AsDate := StrToDate(F_Condominio.edtInicioContrato.Text); Params[17].AsDate := StrToDate(F_Condominio.edtFimContrato.Text); Params[18].AsFloat := StrToFloat(F_Condominio.EdtValor.Text); Params[19].AsInteger := StrToInt(F_Condominio.edtVencimento.Text); Params[20].AsInteger := 1; Params[21].AsString := 'I'; ExecProc; end;
-
Colegas, quando tento registrar alguns banco de dados no interbase recebo a seguinte mensagem, no caso abaixo tentei registrar um banco de dados de exemplo: wrong or obsolete version. unsupported on-disc structure for file C:CODEGEAR\INTERBASE\EXEMPLE\DATABASE\EMPLOYEE.GDB; found 13.1,m support 11.1 Estou usando o IBExpert que suporta a versão interbase 2009 e meu banco de dados é o interbase 2009 não entendi porque deu este erro. Poderia me dar uma ajuda? Obrigado!
-
Fiz o download e reinstalei, e continua dando o mesmo erro!
-
Colegas, estou usando o delphi 2007 tentei abrir um relatório no quickreport, mas obtive uma mensagem de erro: Application.CreateForm(TfrmReportCliente, frmReportCliente); try frmReportCliente.Preview; (aqui da a mensagem de erro: 'frmReportCliente' does not contain a member named Preview.) ... Alguém poderia me fornecer o comando certo para abrir um relatório? Obrigado!
-
Pompeu, funcionou, muito obrigado! Estou passando os valores através de DBEDITS, como seria se eu passe atraves de Edits mudaria esta linha de código? Params[1].AsString := cdsClientesNOME_CLIENTE.AsString;
-
Colegas, no evento Before Post de um ClientDataSet tenho a seguinte procedure: procedure TDM.cdsClientesBeforePost(DataSet: TDataSet); begin with spCliente do begin Params[0].AsInteger := cdsClientesID_CLIENTE.AsInteger; Params[1].AsString := cdsClientesNOME_CLIENTE.AsString; Params[2].AsString := cdsClientesENDERECO.AsString; ExecProc; end; end; Quando clico no btão salvar da a seguinte mensagem de erro: List index out of bounds(2) Como posso resolver isso obrigado!
-
(Resolvido) Meu vendorlib estava errado. Usei o fbclient.dll mas o certo era gds32.dll
-
Colegas, ao tentar conectar estou tendo esta mensagem de erro. O arquivo encontra-se na posta system32 e na pasta bin do radio studio 2007 o que mais tenho que fazer? Erro: Cannot load dbxint30.dll (126). It may be missing from the system path
-
Então use o Winzip para descompactar o arquivo abraço Fiz o procedimento ao tentar mas ao conectar da a mensagem "Invalid package handle" e quando clico na query para exibir os campos recebo a mensagem de erro: Unable to load specified ODBC Drive manager DLL.: 'psqlodbc.dll"
-
Veja como: http://www.devmedia.com.br/download/down.asp?id=5196&cb= http://downloads.sourceforge.net/project/o...use_mirror=ufpr abraço Baxei o arquivo neste endereço: http://www.devmedia.com.br/download/down.asp?id=5196&cb=, mas quando fui abrir o winrar de a mensagem que o arquivo esta corrompido.
-
Um exemplo bem simples uses classes; procedure TForm1.Button1Click(Sender: TObject); var animal : TStringList; // Define a variavel lista de strings i : Integer; begin // Define um objeto string list, e aponta para a variavel animal := TStringList.Create; // Adicionar os nomes de animais a lista animal.Add('Gato'); animal.Add('Rato'); animal.Add('Coelho'); // Mostrar a lista for i := 0 to animal.Count-1 do ShowMessage(animal[i]); // animal[i] é igual a animal.Strings[i] // Limpar a lista de objetos animal.Free; end; Outros exemplos: Example code : Using name-value strings var names : TStringList; // Define our string list variable ageStr : String; i : Integer; begin // Define a string list object, and point our variable at it names := TStringList.Create; // Now add some names to our list names.CommaText := 'Neil=45, Brian=63, Jim=22'; // And now find Brian's age ageStr := names.Values['Brian']; // Display this value ShowMessage('Brians age = '+ageStr); // Now display all name and age pair values for i := 0 to names.Count-1 do begin ShowMessage(names.Names[i]+' is '+names.ValueFromIndex[i]); end; // Free up the list object names.Free; end; Show full unit code Brians age is 63 Neil is 45 Brian is 63 Jim is 22 Example code : Using DelimitedText, Delimiter and QuoteChar var cars : TStringList; // Define our string list variable i : Integer; begin // Define a string list object, and point our variable at it cars := TStringList.Create; // Now add some cars to our list - using the DelimitedText property // with overriden control variables cars.Delimiter := ' '; // Each list item will be blank separated cars.QuoteChar := '|'; // And each item will be quoted with |'s cars.DelimitedText := '|Honda Jazz| |Ford Mondeo| |Jaguar "E-type"|'; // Now display these cars for i := 0 to cars.Count-1 do ShowMessage(cars[i]); // cars[i] equates to cars.Strings[i] // Free up the list object cars.Free; end; Show full unit code Honda Jazz Ford Mondeo Jaguar "E-type" abraço (Resolvido) Obrigado
-
Colegas, baixei o dbexpressObdc para fazer conexão Delphi 2007 + PostGreSql, instalei como dbExpress3 eu já tinha a dbexpress 2.5 instalado fiz isso para não dar conflito, mas a paleta não esta aparecendo? Como faço para reparar este problema? Quero tirar o DbExpress 2.5 que não é suporta o Drive do Postgresql e colocar o dbexpressObdc. Obrigado!