-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
(Resolvido) erro ao tentar salvar cadastro
pergunta respondeu ao Ronaldo Lanhellas de Jhonas em Delphi, Kylix
TClientDataSet(Ds.DataSet).Post; O comando Post é usado para escrever ( salvar ) um registro modificado no banco de dados. TClientDataSet(Ds.DataSet).ApplyUpdates(-1); Envia todos os updates ( registros ) atualizados, inseridos e deletados do dataset cliente para o provedor para atualizar ao banco de dados. Porque o -1 ? Veja a função: function ApplyUpdates(MaxErrors: Integer); Integer; virtual; o -1 é o numero colocado para o numero maximo de erros, é usado para ignorar os erros e continuar sem parar a execução do programa ... entretanto existem outros procedimentos para tratar esses erros. quando voce tem um campo autoincremento e dá o comando insert, automaticamente o campo usado como autoincremento recebe o proximo numero da lista, então neste caso não é necessario voce atribuir qualquer valor a ele .... se fizer isso ele não grava valor nenhum, o que é feito pelo post e o applyupdates. abraço -
exemplo usando o ZTable: procedure TForm1.Button1Click(Sender: TObject); begin // o campo da tabela deve estar indexado ZTable1.IndexFieldNames := 'EMPRESA'; end; se voce for usar o onTitleClick do DBgrid já é um pouco diferente, e o ideal seria usar o ZQuery abraço
-
(Resolvido) erro ao tentar salvar cadastro
pergunta respondeu ao Ronaldo Lanhellas de Jhonas em Delphi, Kylix
procedure TfrmModelo.ac_salvarExecute(Sender: TObject); begin TClientDataSet(Ds.DataSet).Post; TClientDataSet(Ds.DataSet).ApplyUpdates(-1); Pagecontrol1.ActivePage := tbConsulta; end; O problema não é quando voce salva, mas quando da o insert abraço -
Tente usar o DBControlGrid abraço
-
Que componentes voce esta usando para acessar a tabela ?
-
Voce esta usando um DataModule, neste caso se o ClientDataSet2 não estiver apontado para o mesmo banco de dados, ocorre o erro de EAccessViolation. se forem arquivos independentes, então não use o DataModule abraço
-
ActionManager não pode ser herdado ?
pergunta respondeu ao Ronaldo Lanhellas de Jhonas em Delphi, Kylix
Sim ... terá que utilizar o Action List no Form Modelo. O Action Manager não suporta heranca. abraço -
(Resolvido) erro ao tentar salvar cadastro
pergunta respondeu ao Ronaldo Lanhellas de Jhonas em Delphi, Kylix
Seria mais facil te dar uma resposta se voce colocasse o seu código abraço -
Nem vai achar .. não é um componente uses Clipbrd; procedure TForm1.Button1Click(Sender: TObject); begin if (ssCtrl in Shift) and (Key=Ord('C')) then begin Clipboard.AsText := trim(lowercase('(memo)')); Clipboard.AsText := ADOTable1.FieldByName('qualificacao').AsString; end; end; abraço
-
Seria a mesma coisa procedure TFrm_Principal.Button1Click(Sender: TObject); var St: string; i : integer; begin DataModule1.ClientDataSet1.Open; DataModule1.ClientDataSet1.First; for i := 1 to DataModule1.ClientDataSet1.RecordCount do begin St:= DataModule1.ClientDataSet1.FieldValues['Tamanho']; ShowMessage(St); DataModule1.ClientDataSet1.Next; end; end; abraço
-
(Resolvido) Mostrar campo da tabela em varias colunas
pergunta respondeu ao vms de Jhonas em Delphi, Kylix
agora entendi .... voce já tem essa tabela com esses 2 campos e que os mesmos contem os valores que voce precisa visualizar acho que voce pode usar um CheckListBox ou um StringGrid ou ainda um ListView para isso No caso do CheckListBox ... na propriedade Itens voce joga o conteudo titulo e usa a caixa de checagem para mostrar o texto do memorando ( ou seja, quando voce clicar no item ele mostra o texto do memorando ) não esqueça a propriedade Columns No caso do StringGrid, crie tantas colunas quanto forem necessarias ( via código ) e um numero de linhas fixas ou variaveis ( rolagem da tela ) para mostrar o conteudo do titulo , e ao clicar em cada celula voce mostra o conteudo do Memo O Listview segue o mesmo raciocinio .... mas ainda existem outras maneiras abraço -
(Resolvido) Mostrar campo da tabela em varias colunas
pergunta respondeu ao vms de Jhonas em Delphi, Kylix
voce terá que ler a linha do texto e usar função copy para retirar os trechos nas posições especificadas e passar o conteudo para um campo de sua tabela exemplo: Table1NOME.AsString := (Copy(LINE, 1, 30)); Table1ENDER.AsString := (Copy(LINE, 32, 50)); Table1CIDADE.AsString := (Copy(LINE, 73, 30)); Onde LINE seria a variavel usada para ler cada linha do arquivo texto abraço -
Não é o mesmo raciocinio, porque no evento OnShow o código será executado apenas uma unica vez e no evento OnActive o código será executado sempre que o Form for ativado abraço
-
Certo: Ds.DataSet.Filter := cbxField.Text+' like '+QuotedStr(EdtValor.Text+'%'); Errado: Ds.DataSet.Filter := cbxfield.Text 'like' QuotedStr(Edtvalor.Text '%'); porque usar o + ??? justamente para ajuntar uma string com outra para não dar erro na compilação Suas dúvidas são básicas ... voce deveria ler mais sobre o delphi abraço
-
exatamente ... dependendo de onde voce coloque o % ele procura a primeira ocorrencia ou a ultima dentro de uma string abraço
-
Faça uma pesquisa no forum pela palavra Processos http://scriptbrasil.com.br/forum/index.php...hlite=processos abraço
-
O operador LIKE que exibe dados baseados em uma seqüência de caracteres. O operador LIKE utiliza um coringa % para representarmos qualquer numero de caracter. exemplo: Select * from Empregado Where NOME LIKE '%CIA%' Order by NOME O resultado seria: abraço
-
voce não pode colocar um código para executar antes que o Form tenha sido criado, então o correto seria colocar o código no evento OnActive do Form, para que sempre que o Form for ativado ( ou seja receber o foco ) o codigo seja executado. abraço
-
experimente colocar este código dentro de um botão e veja o que acontece abraço
-
(Resolvido) Mostrar campo da tabela em varias colunas
pergunta respondeu ao vms de Jhonas em Delphi, Kylix
coloque algumas linha do seu campo texto, para dar uma idéia do que esta querendo -
O erro está no seu código .... mas qual é a finalidade de colocar o nome dos campos da sua tabela dentro de um combobox ?
-
Exportar QR para PDF nao salva o arquivo corretamente
pergunta respondeu ao danielrgoes de Jhonas em Delphi, Kylix
Veja este post http://scriptbrasil.com.br/forum/index.php...st&p=498006 abraço -
Locate localizando o próximo do locate se houver
pergunta respondeu ao LucAlucard de Jhonas em Delphi, Kylix
voce pode usar o FindNext Implements a virtual method for positioning the cursor to the next record in a filtered dataset. function FindNext: Boolean; Description This function returns False, indicating that the cursor was not successfully repositioned. Descendant classes override FindNext to position the cursor to the next record of the dataset, honoring any filters that are in effect. FindNext should return True if the cursor is successfully repositioned. exemplo: procedure TForm1.Button1Click(Sender: TObject); var sr: TSearchRec; FileAttrs: Integer; begin StringGrid1.RowCount := 1; if CheckBox1.Checked then FileAttrs := faReadOnly else FileAttrs := 0; if CheckBox2.Checked then FileAttrs := FileAttrs + faHidden; if CheckBox3.Checked then FileAttrs := FileAttrs + faSysFile; if CheckBox4.Checked then FileAttrs := FileAttrs + faVolumeID; if CheckBox5.Checked then FileAttrs := FileAttrs + faDirectory; if CheckBox6.Checked then FileAttrs := FileAttrs + faArchive; if CheckBox7.Checked then FileAttrs := FileAttrs + faAnyFile; if FindFirst(Edit1.Text, FileAttrs, sr) = 0 then begin with StringGrid1 do begin if (sr.Attr and FileAttrs) = sr.Attr then begin Cells[1,RowCount-1] := sr.Name; Cells[2,RowCount-1] := IntToStr(sr.Size); end; while FindNext(sr) = 0 do begin if (sr.Attr and FileAttrs) = sr.Attr then begin RowCount := RowCount + 1; Cells[1, RowCount-1] := sr.Name; Cells[2, RowCount-1] := IntToStr(sr.Size); end; end; FindClose(sr); end; end; end; outra solução: Um botão para pesquisar com o código ClientDataSet.FindKey([EditBusca.Text]); E outro botão procurar o proximo ClientDataSet.FindNext; outra solução: uses IBCustomDataSet; Código: TIBCustomDataSet(Datasource.dataset).LocateNext('','',[]); outra solução: DM.qrProduPesq.Close; DM.qrProduPesq.SQL.Clear; DM.qrProduPesq.SQL.Add('SELECT nome, codigo FROM PRODU WHERE UPPER(nome) LIKE ' + #39 + '%' + Edit1.Text + '%' + #39); DM.qrProduPesq.Open; usando Like na sentença sql voce traz somente os registros que satisfaçam as condições abraço -
O erro direciona voce para a parte do código onde se encontra o Form com o erro No seu caso o erro esta no: Application.CreateForm(TfrmPrincipal, frmPrincipal); procure no código onde deveria ser colocado um ponto final e voce colocou um parenteses abraço
-
Locate localizando o próximo do locate se houver
pergunta respondeu ao LucAlucard de Jhonas em Delphi, Kylix
sim ... mas lembre que após cada next, voce deve testar o inicio do proximo registro para saber que chegou ao fim a pesquisa ALBERTO ARMANDO ALDEMIR ----------- // a pesquisa deve encerrar aqui BRUNO BRENO se não estiver ordenado, o ponteiro do locate irá para sempre no primeiro registro da ocorrencia abraço