PREGUNTAS CONTESTADAS - Delphi

 Hay un total de 680 Preguntas.<<  >> 

    Pregunta:  1111 - IMPRIMIR DOS CAMPOS MEMO EN QUICK BASIC
Autor:  Alberto de la Cruz
Hola amigos: Trabajo en Delphi 3 en Win 95 y tengo problemas con el quick report 2, ya que al imprimir dos campos memo, no los imprime correctamente ya que a veces uno lo imprime primero y el otro despues, o deja espacios muy grandes entre parrafos, e invade bandas que no le corresponden, espero que alguien me pueda ayudar ya que estos informes urgen.
De antemano gracias y saludos desde México
  Respuesta:  José Oronas
Había un problema como el que describes que fue solucionado con la version 2K (si mal no recuerdo) de QReport.
Y por estos momentos debe andar la version 3.5 que puedes bajar desde su página http://www.qusoft.com

    Pregunta:  1124 - BASES DE DATOS ACCESS EN DELPHI 4
Autor:  Mauricio
requiero saber como hacer INSERTS, deletes, Updates en una tabla de una base de datos en ACCESS 97, a través de Delphi 4 client/server suite
  Respuesta:  marcello marques marcellomm
normalmente utilizo a guia ADO:

1 - Crie um DataModule e coloque um ADOConnection
2 - Clicke 2 vezes no ADOConnection
3 - Selecione o caminho do seu BD
4 - No ObjectInspector no item LoginPronpt marque FALSE p/ o sistema não te solicitar LOGIN.
5 - Em Provider escolha Microsoft.Jet.OLEDB.4.0
6 - Para trabalhar com SQL utilize o objeto ADOQuery
7 - Selecione o ADOQuery e no ObjectInspector click no campo SQL e na caixa que abrir escreva os comandos desejados.
8 - Os comandos podem tambem ser inseridos nos eventos dos objetos,(botões, DBEdits, Etc.:).
9 - despues es só brincar...
  Respuesta:  Dario Alvarez Aranda
Hola...

Yo he trabajado con los drivers nativos de delphi 4 para Acces y te cuento que el acceso es mucho mas rapido que atraves de ODBC.
Cuando creas el alias defines si biene de ODBC y si es por el driver nativo, debes escoger MsAcces y listo, el resto lo trabajas en forma normal, el nombre del modulo (si tienes) . nombre de la tabla . y la opcion:
- Insert: para insertar
- Append: para agregar
- Delete: para borar
- ...
  Respuesta:  Abnel Lluberes Mustafa
Hola.
Delphi disque tiene codigos nativos para Access, pero nunca he podido trabajar con tales. Regularmente utilizo el Administrador de origenes de Datos ODBC para agregar la base de Datos con la cual deseo trabajar y actualizo el BDE Administrator de Delphi para que me la reconosca.

A partir de aqui puedo trabar con ella como si fuese cualquier base de datos creada con Database Desktop.

Cuaquiel duda me tiras un gritito.

    Pregunta:  1139 - BACKUP DE TABLAS
Autor:  Laphat Mateews Rodriguez
Mi problema es el siguiente:

Tengo una aplicacion en Delphi.
Deseo poner una opcion en el menu, con la cual el usuario pueda realisar un backup de toda las tablas (Son paradox), sin tener que salir del programa y que la copia pueda se en un Driver cualquiera.

Como puedo hacerlo, que componete, etc.

Lo es intentado con el FileListBox...

Mucha Gracias.
  Respuesta:  Joe Solari
1.-Si cuando dices 'Driver' te refieres a la unidad a:\ o c:\ lo mas facil y menos pesado para el proceso es que barras la(s) tabla(s) que deseas salvar y las guardescomo texto puro (.txt) con algún separador.
Ejem:(|dato1|dato2|dato3|dato4|....|datoN|) el separador es '|'
Después de esto, puedes compactar el archivo resultante con lo que ocuparias menos espacio.

2.-Si quieres algo menos rústico guárdalo con formato XML.

3.-Si cuando dices 'driver' te refieres a que quieres guardad la tabla de Paradox en Access o paradox a SQL Server la cosa ya es mas laboriosa que lo anterior.

Para todos los casos tengo ejemplos... ¿Cuál es tu caso y adonde te envio los ejemplos...?
  Respuesta:  juan carlos gonzale
de esta forma yo he podido copiar las tablas del disco duro al drive a:
esto no comprime las tablas solo las pasa tal cual
como se encuentran en una ruta especifica.
tiene dos limitantes
1) solo puede guardar una tabla con tanta informacion como pueda albergar un disco de 3.5 o similar
2) no copia todas las tablas a la vez se debe hacer de a una.
en una forma coloca los siguientes componenetes:
2tdatasource
2ttable
y unelos con la propiedad dataset
1 tbatchmove (se encuentra en dataacces)
y colocale las propiedades :
mode=batcopy
destination=table2
source=table1
y el siguiente codigo
procedure TForm1.Button1Click(Sender: TObject);
var
x:integer;
begin
try
if messagedlg(´Inserte un disco formateado en el drive A: ´+chr(13)+´ ¿ iniciar la copia ? ´,
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
x:=(disksize(1)div 1024);
if x=0 then
begin
showmessage(´ Error´+chr(13)+´ el dispositivo no esta disponible´+chr(13)+´asegurese de haber insertado el disco corectamente´);
end
else
begin
table1.TableName :=´d:\compilados\driver.db´;
table2.TableName :=´a:\´+ extractfilename(´driver.db´);
batchmove1.Execute;
end;
end;
except
showmessage(´disco protegido contra escritura´);
end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Ð/LM/W3SVC/116/Root
  Respuesta:  Federico Gordillo
Podes usar los componentes TDriveComboBox y TDirectoryListBox para seleccionar el destino del Backup.
Yo, por el momento no se como comprimir con delphi, por eso para hacer un backup utilizo el comando "WINEXEC" para ejecutar algun programa para comprimir(ej: winrar95, WinZip) y pasarle los parametros necesarios para que el usuario no tenga que hacer nada.
Pero para hacer un backup tenes que asegurarte que ninguna tabla tenga la propiedad active igual a True.
Espero poder haberte ayudado, cualquier duda enviame un mail.

    Pregunta:  1140 - ANALISTA
Autor:  Benjamín Cepeda A.
CREAR AUTOMATICAMENTE UN SYSTEM ODBC

Hemos modificado una aplicacion en Delphi 4.0 para que trabaje con Dlls en Visual Basic 6.0, estas dll´s accesan a SQL, debimos utilizar ODBC en VB para solucionar unos conflictos de acceso, pero ahora necesitamos crear automaticamente el SYSTEM ODBC, para su instalación, no importa en que lenguaje debamos hacerlo.

Si puedes darnos una idea, gracias de antemano.
  Respuesta:  kikonmx
Mira, si quieres crear, borrar o modificar entradas de ODBC, lo más fácil es hacerlo mediante el registro, yo hice un programa que crea unos orígenes datos en el DNS del Sistema ( funcionan para todos los usuarios ) y lo hice mediante el registro de windows, checalo, ahí se encuentra muchísima información
  Respuesta:  Oscar González
Utilizando el lenguaje "C" y las funciones API del ODBC creo que podeis conseguirlo. Yo lo utilizaba para acceder a tablas "DBF" desde "C".

Un Saludo.

    Pregunta:  1187 - PONER MENSAJES EN LA BANDEJA DE SALIDA
Autor:  alexander lopez
Hola Amigos:

Me urge poder colocar archivos en la bandeja de salida de OUTLOOK EXPRESS sin necesidad de conectarme a INTERNET, y desde mi aplicacion DELPHI 4 ó DELPHI 5, para que el usuario los envie cuando desee.

GRACIAS
  Respuesta:  Jose Oronas
Por la largada de la respuesta, esta en el archivo resp1187.txt.

    Pregunta:  1214 - PARAMETRO LIKE EN DELPHI
Autor:  juan carlos gonzalez
saludos a todos los que hacen parte de esta web
quisiera saber como puedo utilizar el parametro like en delphi de forma dinamica o que metodo existe para remplazarlo
muchas gracias por su colaboracion
  Respuesta:  Diego Pacheco
LIKE
Para SQL es :

DescPai := 'Ar';

Add('select cpais, pais ');
Add('from paises');
Add('where cpai like '+QuotedStr('%'+DescPai+'%'));

De ésta forma funciona el LIKE en la base.
--
Ahora si vós querés algo que funcione como el LIKE, pero sin acceder a la base de datos : FINCION "POS"

if (pos('gent','Argentina')) > 0 then ...

O sea que POS devuelve la posición en la que el SubStrig (gent) coincide con el String (Argentina). Entonces si > 0 el SubString está dentro del String.

    Pregunta:  1343 - MEMOS EN DELPHI Y TABLAS DBASE IV
Autor:  Jose Ferreira
Tengo una tabla dbase IV en la cual declare un campo tipo M (memo), pero ahora quiero que lo que tiene ese campo memo se pase a un componente memo en delphi, yo hice esto pero no funciono..

Memo1.Text:=Table1.Fields[2].AsString;

lo que me pone en el memo despues de hacer esto es ´(memo)´, pero la informacion nada...

Me pueden ayudar?
  Respuesta:  José Oronas
Lo que te sugiere Federico me parece lo ideal, pero por si quieres probarlo deberia ser.

Memo1.Lines.Text := Table1.Fields[2].AsString ;

Saludos ...
  Respuesta:  Federico Gordillo
porque no intentas probar usando un TDBMemo en lugar de un TMemo ya que ambos pueden realiar casi las mismas operaciones.

    Pregunta:  1357 - DELPHI
Autor:  Victor Manuel Morales Gabriel
¿Como puedo condicionar en un SQL un campo tipo fecha dentro de la clausula Where?
  Respuesta:  CANDY Montoya
hola yo uso el mysql con delphi y cuando uso un mytable y quiero hacer un filtro sql con fecha lo hafgo asi
mytable1.filtersql:='fecha=20060502' ;
porque lei un poco de como era el formato que el mysql entendia y era asi yyyymmdd
  Respuesta:  Federico Gordillo
Otra forma de hacerlo, esto te lo escribo porque en un tiempo lo hacia de forma similar a como te menciono Jose pero no siempre buscaba bien. Se mareaba con las fechas y no tengo la menor idea del porque capaz era mi maquina. Por eso yo ahora lo hago de la siguiente manera
QClientes.active:=false;
QClientes.sql.clear;
QClientes.sql.add(´select *´);
QClientes.sql.add(´From "Clientes.db"´);
QClientes.sql.add(´Where (Vencimiento > :fecha)´);
QClientes.sql.add(´Order By Nombre´);
QClientes.Params.ParamByName.(´fecha´).ParamType:=ptInput;
QClientes.Params.ParamByName(´fecha´).DataType := ftDateTime;
QClientes.ParambyName(´fecha´).asdateTime:=date;
QClientes.active:=true;
asi nunca tuve problemas. No se si a esta altura del partido te sirve esta informacion pero es para que si lo queres lo tengas presente por las dudas.

  Respuesta:  José Oronas
Asumo que usas un tQuery para correr el código Sql.
De acuerdo a mi experiencia en esto que no es mucha, la fecha va entre comillas y en formato mm/dd/yyyy o al menos yo no encontre la forma de que lo tomara de otra manera (y no me procupe demasiado).
Disculpa, si se desliza un error aparentemente esta bien pero no tengo delphi a mano para chequear la sintaxis

Query1.Active := False ;
With Query1.Sql Do
Begin
Clear ;
Add(´SELECT DISTINCT Nombre, Domicilo, Tel´);
Add(´FROM "Agenda.DB"´);
Add(´WHERE´);
Add(´(FNac > ´+#39+FormatDateTime(´mm/dd/yyyy´,Fecha)+#39+´)´);
// Fecha : tDatetime
Add(´ORDER BY Nombre´);
End ;
Query1.Active := True ;

Si lo que necesitas es condicionar el dia, mes o año podes usar la funcion EXTRACT()


Si en cambio necesitas por ejempo para buscar cumpleaños del dia 15 de enero te quedaría algo asi :

Query1.Active := False ;
With Query1.Sql Do
Begin
Clear ;
Add(´SELECT DISTINCT Nombre, Domicilo, Tel´);
Add(´FROM "Agenda.DB"´);
Add(´WHERE´);
Add(´(SELECT EXTRACT(Day FROM FNac)= 15)´);
Add(´AND (SELECT EXTRACT(Month FROM FNac)= 1)´);
Add(´ORDER BY Nombre´);
End ;
Query1.Active := True ;

Espero que te sea util.

Saludos ..

    Pregunta:  1423 - PROBLEMAS CON DBCOMBOBOX
Autor:  CLAUDIA HERNANDEZ G.
SE SUPONE QUE EL CONTROL DBCOMBOBOX ME SIRVE PARA MANIPULAR LA INFORMACION DE UNA TABLA MEDIANTE UN COMBOBOX, PERO SIEMPRE QUE LO HE QUERIDO USAR, NO ME MUESTRA TODOS LOS REGISTROS DE LA TABLA EN CUESTION, SOLO ME MUESTRA EL PRIMER REGISTRO, LO HE ECHO COMO DICE EN LA AYUDA, CONSULTE LIBROS Y HE TERMINADO POR USAR UN COMBOBOX SIMPLE Y LLENARLO MEDIANTE UN CICLO (WHILE) EL CUAL YA PROGRAME PARA ESTE PROPOSITO. PERO SI EL COMPONENTE YA LO HACE POR SI SOLO, QUISIERA SABER EN QUE ESTOY FALLANDO, PONGO EL DATASOURCE, EL CAMPO QUE QUIERO, TODO, (ESO CREO YO) PERO AUN NO LO CONSIGO.
AGRADECERE SU AYUDA.
  Respuesta:  WILLIAM RUALES
estas utilizando el componente equivocado, utiliza el DBCOMBOBOX de la paleta DATACONTROL y ya!!!!
  Respuesta:  Diego Jose Muñoz Carbajo
Te has equivocado de componente.
Un DBComboBox sirve para modificar el valor de un campo DEL REGISTRO ACTUAL y opcionalmente seleccionarlo de una lista de valores (que debes rellenar)
Prueba con TDBLookUpCombo:
Un datasource, un ttable y un Dblookupcombo.
En el dblookupcombo pones:
datasource en blanco
datafield en blanco
keyfield = tu campo
listfield = tu campo
listsource = el datasource
y ya esta.
El dblookupcombo es mas potente que esto, asi que lee la ayuda de dicho componente.

    Pregunta:  1439 - ELIMINACION DE REGISTROS POR SQL
Autor:  Jorge Cortés
Tengo unas tablas Paradox locales, una vez que estas tablas
tienen informacion y procedo a borrarle algunos registros
por medio de un TQuery con un DELETE de SQL:

QryDepurador.RequestLive:=True;

QryDepurador.Close
QryDepurador.SQL.Clear;
QryDepurador.SQL.Add(´DELETE FROM historial´);
QryDepurador.SQL.Add(´WHERE bitacora=1´)
QryDepurador.ExecSQL;

Efectivamente los registros son borrados pero el tama&o de
la tabla no decrementa en absoluto, esto es:
si el tama&o consta de 56K y una vez borrados estos registros,
la tabla queda con 56K. Esto lo hace cuando la tabla esta
indexada y no lo esta, ambos casos dan el mismo resultado.

A que se puede deber, esto ?

De hecho realize una prueba haciendo un ciclo:

QryDepurador.Close
QryDepurador.SQL.Clear;
QryDepurador.SQL.Add(´SELECT * FROM historial´);
QryDepurador.SQL.Add(´WHERE bitacora=1´)
QryDepurador.Open;
While not QryDepurador.Eof do
QryDepurador.Delete;

Pero igual la tabla original queda inflada !

* Igual le coloque el "Pack Table" al momento de estructurarla
pero igual.


De antemano Gracias.
  Respuesta:  Diego Jose Muñoz Carbajo
En dBase los registros borrados solamente se marcan como borrados, no se elimina espacio en disco
En Paradox, los registros borrados se pierden, pero no se recupera el espacio en disco.
Para recuperarlo, con el Database Desktop, utiliza la opcion ´Reestructure table´ y marca ´Pack table´, asi funciona. Este proceso debe realizarse por tanto de vez en cuando.
Para hacerlo desde codigo, hay que llamar al Api del bde, concretamente a DbiDoReestructure pero este tema ya es mas complicado (busca informacion sobre el api del bde y como
utilizar DbiDoReestructure, es sencillo)

|<  <<  1 2 3 4 5 6 7 8 9 10 11  >>  >|