Array
(
)

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

Vitor^_^
   - 16 fev 2007

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:

#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?

#Código
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!


Otto
   - 16 fev 2007

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 ;)


Rjun
   - 16 fev 2007

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.


Vitor^_^
   - 16 fev 2007

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!


Vitor^_^
   - 16 fev 2007

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


Citação:
--------------------------------------------------------------------------------

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?


Rjun
   - 17 fev 2007

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


Vitor^_^
   - 21 fev 2007

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:

#Código

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!


Rjun
   - 21 fev 2007

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


Vitor^_^
   - 21 fev 2007

procedure:

#Código

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):

#Código
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.


Rjun
   - 21 fev 2007

Em que momento é disparado o erro?


Vitor^_^
   - 21 fev 2007

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.


Vitor^_^
   - 21 fev 2007

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


Garoto_burns
   - 09 mar 2007

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


Vitor^_^
   - 09 mar 2007


Citação:
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!