Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-05-2016
Ramsay Ramsay is offline
Miembro
NULL
 
Registrado: ene 2016
Posts: 104
Poder: 9
Ramsay Va por buen camino
Base de datos SQL Server no se actualiza

Hola , tengo un serio problema , tengo un programa en delphi que usa sql server para leer,agregar,editar y borrar registros de una base de datos , en la aplicacion todo funciona perfecto , agrega,lee,edita y borra sin ningun problema , el tema comienza cuando uso los reportes y los graficos , cuando los cargo solo se ven los datos viejos , cuando reinicio toda la aplicacion recien ahi se actualizan los registros de los reportes y los graficos , siempre uso las mismas funciones , esta es la unit :

Código Delphi [-]
unit Conexion;

interface

uses Windows, SysUtils, Data.SqlExpr,
  Data.DBXMSSQL, Data.DB, Data.Win.ADODB, Classes;

type
  TConexion = class
  private
  public
    conexion_now: TADOConnection;
    c: string;
    Constructor Create; overload;
    function Conectar(): boolean;
    function Desconectar(): boolean;
    function EjecutarComando(sql: string): boolean;
    function CargarComando(sql: string): integer;

implementation

constructor TConexion.Create;
begin
  inherited;
  conexion_now := TADOConnection.Create(nil);
  c := '''';
end;

function TConexion.Conectar(): boolean;
begin
  try
    begin
      conexion_now.LoginPrompt := false;
      conexion_now.ConnectionString :=
        'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=test;Password=test;Initial Catalog=test;Data Source=localhost\SQLEXPRESS';
      conexion_now.Connected := true;
      Result := true;
    end;
  except
    begin
      Result := false;
    end;
  end;
end;

function TConexion.Desconectar(): boolean;
begin
  try
    begin
      conexion_now.Connected := false;
      Result := true;
    end;
  except
    begin
      Result := false;
    end;
  end;
end;

{
  function TConexion.EjecutarComando(sql: string): boolean;
  var
  comando: TADOCommand;
  begin

  Conectar();

  try
  begin
  comando := TADOCommand.Create(nil);

  sql := StringReplace(sql, '"', c, [rfReplaceAll, rfIgnoreCase]);

  comando.Connection := conexion_now;
  comando.Parameters.Clear;
  comando.CommandText := sql;
  comando.Execute;

  comando.Free;

  Result := true;

  end;
  except
  begin
  Result := false;
  end;
  end;

  Desconectar();

  end;
}

function TConexion.EjecutarComando(sql: string): boolean;
var
  comando: TADOQuery;
begin

  Conectar();

  try
    begin
      comando := TADOQuery.Create(nil);

      comando.Connection := conexion_now;

      sql := StringReplace(sql, '"', c, [rfReplaceAll, rfIgnoreCase]);

      comando.Parameters.Clear;
      comando.sql.Text := sql;

      comando.Open;
      comando.Edit;

      comando.ExecSQL;
      comando.Post;

      comando.Free;

      Result := true;

    end;
  except
    begin
      Result := false;
    end;
  end;

  Desconectar();

end;

function TConexion.CargarComando(sql: string): integer;
var
  comando: TADOQuery;
  count: integer;
begin

  Conectar();

  count := 0;
  comando := TADOQuery.Create(nil);

  sql := StringReplace(sql, '"', c, [rfReplaceAll, rfIgnoreCase]);

  comando.Connection := conexion_now;
  comando.sql.Add(sql);
  comando.Open;

  while not comando.eof do
  begin
    Inc(count);
    comando.Next;
  end;

  comando.Free;

  Desconectar();

  Result := count;
end;

end.

Este es el codigo de uno de los graficos :

Código Delphi [-]
procedure TFormGrafico.FormCreate(Sender: TObject);
var
  Conexion: TConexion;
  comando: TADOQuery;
  sql: string;
  c: string;
  producto: string;
  precio: integer;
begin

  Conexion := TConexion.Create();

  Conexion.Conectar();

  comando := TADOQuery.Create(nil);
  sql := 'select nombre_producto,precio from productos prod,proveedores prov where prod.id_proveedor=prov.id_proveedor';

  sql := StringReplace(sql, '"', c, [rfReplaceAll, rfIgnoreCase]);

  comando.Connection := Conexion.conexion_now;
  comando.sql.Add(sql);
  comando.Open;

  Chart1.Series[0].Clear;

  while not comando.eof do
  begin
    producto := comando.FieldByname('nombre_producto').AsString;
    precio := comando.FieldByname('precio').AsInteger;
    Chart1.Series[0].AddY(precio, producto);
    comando.Next;
  end;

  comando.Free;
  Conexion.Desconectar();

  Conexion.Free;
end;

Aunque es lo mismo , porque en el reporte quick report no uso estas funciones pero aun asi es el mismo tema , en la aplicacion no se ven los datos nuevos pero si cuando reinicio toda la aplicacion.

Nota : Intente tanto con ADOQuery como con ADOCommand.

¿ Alguien me podria ayudar ?
Responder Con Cita
  #2  
Antiguo 30-05-2016
Ramsay Ramsay is offline
Miembro
NULL
 
Registrado: ene 2016
Posts: 104
Poder: 9
Ramsay Va por buen camino
Hola , ya eh solucionado los graficos solo me falta el reporte de quick report , tenia que volver a llamar la funcion de cargar grafico desde el form principal , llamo al reporte desde un boton con el codigo :

Código Delphi [-]
frmReporteListadoProductos.FormReporte.reporte.Update;
frmReporteListadoProductos.FormReporte.reporte.Preview;

En ese formulario nuevo estan los componentes ADOConnection,TADOQuery,TDataSource colocados desde el tool palette.

¿ Como puedo lograr que se vean los datos actualizados ?
Responder Con Cita
  #3  
Antiguo 18-06-2016
Ramsay Ramsay is offline
Miembro
NULL
 
Registrado: ene 2016
Posts: 104
Poder: 9
Ramsay Va por buen camino
Ya casi esta , ya se actualizan los datos con sus ediciones y borrados , pero no cuando se agrega un nuevo dato.

El codigo :

Código Delphi [-]
  Form1.Conexion.BeginTrans();
  Form1.Conexion.CommitTrans();

  Form1.Datos.DataSet.Refresh;
  Form1.Consulta.Refresh;

  Form1.reporte.Update;
  Form1.reporte.Preview;

¿ Que detalle me falta para terminar ? , Por favor alguien responda siempre hablo solo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Actualiza Base de datos datos desde un pen drive Oscar Guzmán Conexión con bases de datos 12 18-12-2013 14:44:12
Duplicar base de datos en SQL SERVER cincosoft SQL 1 03-02-2011 10:50:51
Como Crear Base De Datos Con Sql Server flor MySQL 1 09-02-2008 20:42:59
cambiar de pc una base de datos en sql server 2000 mikylin MS SQL Server 2 12-12-2007 15:48:06
grabar imagen en base de datos sql server 7 didier Internet 0 24-05-2005 16:12:57


La franja horaria es GMT +2. Ahora son las 15:21:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi