Dúvida Delphi 2006 e as revistas ClubeDelphi Edição 74-77

16/02/2007

0

Minha dúvida é sobre criar páginas em asp.net no delphi 2006. Como minhas dúvidas são mais sobre a IDE e a linguagem, achei que não caberia lançar o tópico no fórum de asp.Net.

Minhas dúvidas:
1) Sempre que edito o código, ao alternar para o layout da página, recebo a mensagem de erro: acesso negado, e a pagina abre em branco. tenho que fechar e abrir novamente. Cmo soluciono isso?

2) Como alterno as páginas entre posicionamento absoluto e relativo? (flow e não sei o que...)

Na revista clubeDelphi 75 tem esse código:

procedure TWebForm1.lstCategoria_SelectedIndexChanged(sender: System.Object;
  e: System.EventArgs);
var
  DM: TDM;
  dr: FbDataReader;
begin
  DM := TDM.Create;
  dr := DM.GetProdutos(lstCategoria.SelectedValue);
  DataGrid1.DataSource := dr;
  DataGrid1.DataBind;
  dr.Close;
end;


porque ele não poderia ser assim?

procedure TWebForm1.lstCategoria_SelectedIndexChanged(sender: System.Object;
  e: System.EventArgs);
var
  DM: TDM;
begin
  DM := TDM.Create;
  DataGrid1.DataSource := DM.GetProdutos(lstCategoria.SelectedValue);
  DataGrid1.DataBind;
end;


porque não dá free nem no dr e nem no DM?
porque não usar o with TDM.create do... begin... end?

Grato!


Vitor Rubio

Vitor Rubio

Responder

Posts

16/02/2007

Otto

em .net não precisa lliberar da memoria, o garbage colletion faz isso :D

e, do jeito que voce citou, não funciona? tanto faz ;)


Responder

16/02/2007

Rjun

Vitor

Veja que no exemplo da revista, ele esta usando um DataReader e ao final do processo ele fecha o mesmo. No seu código você não fecha do datareader. Quando você for usar um outro objeto datareader a sua aplicação vai dar pau por que já existe um datareader aberto.


Responder

16/02/2007

Vitor Rubio

eu copiei da revista, apenas fiquei curioso.

E quanto a mudar o layout de flow layout para grid layout??? Como eu posso fazer paginas web parecidas com forms do windows?

E como eu resolvo esse bug do acesso negado?

Grato!


Responder

16/02/2007

Vitor Rubio

Xiiiii, vou precisar de muuuuuita ajuda. Deu um erro cabeludi e berrugoso

-------------------------------------------------------------------------------- Object reference not set to an instance of an object. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. Source Error: Line 43: end; Line 44: Line 45: function TDM.GetGrupos: FbDataReader; Line 46: Var Line 47: dr: FbdataReader; Source File: E:\adv\delphi\Web\WebLojaADV\uDM.pas Line: 45


Podem me dar um help?


Responder

17/02/2007

Rjun

Você deve estar acessando algum objeto que não foi instanciado.


Responder

21/02/2007

Vitor Rubio

Parece ser isso, mas o objeto que eu estou usando é criado por uma function. E a function retorna o objeto normalmente. O erro, se eu debugar e executar passo a passo, já acontece logo na criação da procedure. Esse é um objeto que não pode ser criado pelo método create, mas sim pelo método execute reader. Veja:

function TDM.GetProdutos(aIdCategoria: string): FbDataReader;
var
  dr: FbDataReader;
  cmd: FbCommand;
begin
  FbConnection1.Open;
  cmd := FbCommand.Create(
    ´select ID_PRODUTO, NOME_PRODUTO, URL from PRODUTOS ´+
    ´where ID_CATEGORIA=?´, FbConnection1);
  cmd.Parameters.Add(´ID_CATEGORIA´, FbDbType.Integer, 0,
    ´ID_CATEGORIA´).Value := aIdCategoria;
  dr := cmd.ExecuteReader(CommandBehavior.CloseConnection);
  Result := dr;
end;


não sei onde está o erro.

Gostaria de saber também mais algumas coisas:
1) como instalo um novo controle para asp.net, pois eu não consegui baixar o vídeo no site da clubedelphi,
2)porque tem classes, como o fbDataReader, que não poem gerar descendentes?
3)como eu resolvo esse problema do ´Aceso negado´ na minha IDE?

O que eu quero mesmo é pegar o exemplo da web loja da revista clubedelphi 74-77 e adaptar à minha empresa.

Grato!


Responder

21/02/2007

Rjun

Você poderia colocar o código de onde você chama a função? A principio, o código da função está correto.


Responder

21/02/2007

Vitor Rubio

procedure:

function TDM.GetSubGrupos(codgru: string):  FbDatareader;
Var
  dr: FbdataReader;
  cmd: FbCommand;
begin
  fbCon.Open;
  cmd := FbCommand.Create(´select * from subgrupos where codgru = ´+
    codgru.ToString, fbCon);
  dr := cmd.ExecuteReader(CommandBehavior.CloseConnection);
  result := dr;
end;


a minha é um pouco diferente da revista, o command é criado na hora.

chamada (em outra classe):

procedure TWfHome.CarregaSubGrupo(codgru: string);
var
  dm: TDM;
  drSubGru: FbDataReader;
begin
    dm := Tdm.Create;
    drSubGru := dm.GetSubGrupos(codgru);
    lstSubGrupos.DataSource := drSubGru;
    lstSubGrupos.DataTextField := ´SUBGRUPO´;
    lstSubGrupos.DataValueField := ´CODSUBGRU´;
    lstSubGrupos.DataBind;
    drSubGru.Close;
end;


criei essa procedure para instanciar o DM e chamar esse metodo que retorna o fbDataReader;

De posse do FbDatareader eu populo as listas.


Responder

21/02/2007

Rjun

Em que momento é disparado o erro?


Responder

21/02/2007

Vitor Rubio

ao que tudo indica o erro está acontecendo ao se abrir o fbconnection. quando eu dou um fbcon.open;

o prolema é que estou setando a connection string no dedo, pela propriedade:

fbcon.connectionstring := ´xxxx...´

mesmo assim não está dando certo. Se eu debugo ele mostra aquela janela de cpu window com aqueles códigos de assembly.

não sei mais o que pode estar errado.


Responder

21/02/2007

Vitor Rubio

A princípio eu consegui resolver.

Eu tinha criado um DM (classe pra servir de datamodule) como no exemplo da revista. Mas naquela parte do código que o próprio delphi escreve, por algum motivo, o delphi estava instanciando o fbconnection e setando a connection string no método (procedure) InitializeComponent. O problema é que no constructor create dessa classe ele não chamava a procedure initializecomponent. Então ficavam varios objetos sem instanciar, mas até eu descobrir isso... Não sei porque ele não escreveu essa parte sozinho, ou se era para eu escrever mesmo... Ele escreve tanto código sozinho, código pra instanciar objetos e outros gerenciados por ele....

Agora falta solucionar o problema da IDE e de como alternar o layout de fow pra absolute e vice-versa


Responder

09/03/2007

Garoto_burns

Olá a todos do fórum.

Eu estava com o mesmo problema da mensagem dizendo ´Acesso negado´ no meu BDS 2006 e acabei chegando aqui. Eu encontrei a solução do problema no site da Borland.

Este problema está relacionado com o Internet Explorer 7 e a solução deste problema está descrita nesse documento:

http://support.borland.com/entry.jspa?categoryID=384&externalID=5575


Espero ter ajudado

Diego Queiroz


Responder

09/03/2007

Vitor Rubio

Eu estava com o mesmo problema da mensagem dizendo ´Acesso negado´ no meu BDS 2006 e acabei chegando aqui. Eu encontrei a solução do problema no site da Borland. Este problema está relacionado com o Internet Explorer 7 e a solução deste problema está descrita nesse documento: http://support.borland.com/entry.jspa?categoryID=384&externalID=5575 Espero ter ajudado


funcionou que é uma beleza.
Cara, e eu fiz a besteira de xingar o delphi na frente do meu patrão...
já pensou se ele me põe pra trabalhar com VB e a culpa na verdade era do IE ?
tsc tsc... quem mandou atualizar o windows e esse IE 7....
Esse registrinho já deveria vir no cd do delphi, de fábrica.

Valew!


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar