mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.delphi
Titolo: Puntatori...scusate la mia ignoranza!!!

Salve,
visto che sto cercando di imparare l'uso dei puntatori volevo capire a
cosa servono e quando usarli.
Se ho afferrato il concetto si utilizzerebbero i puntatori in quanto
la memoria utilizzata sarebbe in tutta la RAM (heap se non erro?)
e quindi non ci sarebbero problemi dovuti ad esaurimento della
memoria?
In ogni caso sarei ben lieto di capire bene e dove posso reperire
documentazione a riguardo possibilmente in italiano.
Grazie
Robin

 ha scritto nel messaggio
news:8cqb7tsqnh6efu63f...@4ax.com...


memoria?
I puntatori sono tipi di variabili che si usano in molti particolari.
In generale, si puo' dire che un puntatore torna utile tutte quelle
volte in cui una certa porzione di memoria deve essere acceduta, senza
che sia essa a spostarsi. Mi spiego.
Supponi di dover pitturare un'elefante di rosa : hai due possibilita',
ho porti l'elefante dal pittore (sforzo notevole e grande sudore) o
fai andare il pittore dall'elefante (sforzo minore).
La stessa cosa vale per la memoria.
Se devi passare una struttura di grandi dimensioni a una funzione, per
esempio, o passi l'intera struttura (ingombrando molta porzione di
stack e sprecando cicli di clock) o passi un semplice puntatore alla
struttura, in modo che chi utilizzera' quel puntatore, accedera', per
via indiretta, ai datti della struttura.
E' uno dei tanti possibili esempi.
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

fai andare il pittore dall'elefante (sforzo minore).
......^_^
rhymes
rhy...@insieme.net
"La realtà delle cose si nasconde dietro 
la loro reale apparenza (Maestro Hiamuri)"

fai andare il pittore dall'elefante (sforzo minore).
Io ho mio zio che lavora al circo, ha anche il "carrettino" per
portare gli elefanti.......... ;-P
Max
----------------------------------------------------------
Il vero problema non č tanto sapere se le macchine pensano
bensě se gli uomini pensano. B.F. SKINNER (1904-90)
----------------------------------------------------------

Newsgroup: it.comp.lang.delphi
Titolo: GEXperts

Ho trovato GEXperts 1.33 nella rete e ne ho eseguita la installazione da 
Amministratore, seguendo le indicazioni del file readme. Avrei dovuto 
trovarmelo automaticamente nell'IDE di Delphi (ho la versione 2007 x Win32), 
ma, a parte che non dice sotto quale men� dovrei trovarmelo, comunque non lo 
trovo da nessuna parte.
Qualcuno ha esperienza, lo usa, sa come dovrei installarlo o farlo comparire 
? Grazie 

 ha scritto nel messaggio 
news:4aed93d4$0$1104$4faf...@reader2.news.tin.it...


 Ed infatti non c'� sul mio disco. Qualcuno sa da dove venga ?
il file "rtl140.bpl" fa parte della libreria di Delphi 2010 e non puoi 
mischiare mele con pere, ti serve la rtlxx.bpl per D2007, che non 
ricordo come si chiama :(
^_Goblin_^

 ha scritto nel messaggio 
news:sTHHm.88925$1s6....@twister2.libero.it...

Newsgroup: it.comp.lang.delphi
Titolo: Indy 10: ultimissime cosucce

Ho due problemucci in sospeso con i componenti Indy:
1)
Se ho la seguente procedura:
For I := 1 To 10 Do
Begin
   TCPClient.IOHandler.WriteLn(Command);
   TCPClient.IOHandler.Write(I);
   TCPClient.IOHandler.ReadBytes(RI, SizeOf(R));
   BytesToRaw(RI, R, SizeOf(R));
   Memo1.Lines.Add('Name: '+R.Name);
   Memo1.Lines.Add('Info: '+R.Info);
End;
I record successivi al numero 1 non vengono letti correttamente (il 
valore dopo il primo record non viene modificato)
Ma se creo una procedura di lettura esterna al ciclo:
Procedure TForm1.Read(    Number : Integer;
                       Var R      : MyRec);
Var
   RI : tIdBytes;
Begin
   TCPClient.IOHandler.WriteLn(Command);
   TCPClient.IOHandler.Write(I);
   TCPClient.IOHandler.ReadBytes(RI, SizeOf(R));
   BytesToRaw(RI, R, SizeOf(R));
End;
e la chiamo nel ciclo for:
For I := 1 To 10 Do
Begin
   Read(I, R);
   Memo1.Lines.Add('Name: '+R.Name);
   Memo1.Lines.Add('Info: '+R.Info);
End;
Tutti i record mi vengono letti correttamente. Come è possibile?
2)
Se trasferisco un file tra due computer in rete usando un FileStream la 
velocità è bassissima (ma veramente bassa). Come potrei incrementarla?

 velocità è bassissima (ma veramente bassa). Come potrei incrementarla?
TIdFTP? 
(in effetti non l'ho mai usato quindi non so quanto valga il consiglio...)
-- 
Mauro Falzari
"Chiamatemi Ismaele".
  (Herman Melville, in "Moby Dick", Londra 1851)

 TIdFTP? 
come non detto: ho letto ora il thread del 6/12


Newsgroup: it.comp.lang.delphi
Titolo: Errore

Salve a tutti e scusate l'ignoranza ma sono al mio primo prg in delphi.
Ho un DB access con tre tabelle e due relazioni 1 a molti (Classico:
Clienti ->Fatture->Dettagli)
Ho un datamodule dove ho piazzato un Database e tre Table con relativi
DataSource. Quindi su un form ho messo tre DBGrid.
Scelto il cliente su una di esse mi ritrovo le relative fatture elencate in
una griglia e i dettagli in un'altra.
Funzionicchiava tutto ma ad un certo punto, non so come, mi sono ritrovato
con questo errore appena lanciato il programma:
"Non-blob column in table reqired to perform operation."
Ringrazio chiunque possa darmi un aiuto.
Saluti

la butto lì:
hai modificato la struttura del database aggiungendo/rimuovendo un campo
BLOB e poi non hai aggiornato gli oggetti sul datamodule?
--
Max Etere
massimili...@programmando.org
http://www.programmando.org

 wrote in message
3Z%_8.118794$vm5.4...@news2.tin.it...

Newsgroup: it.comp.lang.delphi
Titolo: ClientDataSet & UpplyUpdates

Ciao a tutti, 
ho la seguenti configurazione : 
DBGrid --> DataSource --> ClientDataSet --> Provider --> TSQLQuery
Si deduce che uso la DBEXpress.
Per piccole tabella do la possibilità di modificare
i dati direttamente sulla griglia (insert, update, delete),
ma vorrei gestire io stesso tali modifiche, ovvero,
vorrei che all'evento POST del cds venga richiamato l'ExecuteSQL di 
un oggetto TSQLQuery preconfigurato.
Tale Query esegua per esempio l'insert del record, e se tutto è andato
a buon fine allora applicare le modifiche al cds.
Il problema è che se faccio l'insert nel post e poi richiamo ApplyUpdate
logicamente è come se stessi facendo 2 insert...
Però se non richiamo l'ApplyUpdates logicamente avrò sempre il Delta
con i records modificati (o nuovi, o cancellati)...
Qualcuno sa darmi un mano?
Grazie
Rino

Rino
	Ciao
	MassimoB
 
---------------------------------
http://www.massimobeschi.it/
---------------------------------
Se tu pagare come dici tu ...
Io lavorare come dico io ...
Se tu pagare come dico io ...
Io lavorare come dici tu ...
---------------------------------

 non tanto mi garba, 
perchè? Tu cosa mi consigli?
Rino

perchè? Tu cosa mi consigli?
in realtà quello che vuoi fare tu, lo fa esattamente il
metodo ApplyUpdate del cds grazie al provider. Se studi
un pò la riconciliazione dei dati fa anche qualcosa di
più in un'ottica Client/Server. Insomma io utilizzo la
tua stessa struttura di componenti in applicazioni
desktop, web, client/server che si scambiano file Xml
prodotti da cds per comunicarsi i dati. Ho sempre usato
DBAware per l'immissione effettiva dei dati e,
pochissime volte ed in situazioni che non hanno niente
a che vedere con inserimenti di record, ho dovuto
utilizzare dell'SQL scritto a manina.
Secondo me ti vai ad infilare in una situazione che
potrebbe crearti dei problemi ... questa è la mia
opinione ;) ovviamente.
Comunque utilizzare nella maniera migliore i componenti
da te citati non è poi così banale e richiede un pò di
studio e letture di articoli a riguardo.
Esempio:
http://bdn.borland.com/soapbox/professionaldeveloper/
(vedi gli articoli di Jensen del 2002/2003)


 logicamente è come se stessi facendo 2 insert...
???
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
Newsgroup: it.comp.lang.delphi
Titolo: Funzione ASM

Qualcuno mi saprebbe dire dove poter trovare una funzione Delphi che mi
restituisca il n° seriale di un drive scritta però in ASM.
Siccome è da tempo che cerco di trovare una funzione in Kylix simile al
GetVolumeInformation e ora mi sono davvero rotto...ho pensato di raggirare
il problema scrivendo il codice in ASM in una funzione delphi!
Che ne dite dell'idea? Penso che sia l'unico modo dato che per linux non si
riescono a trovare funzioni che ti permettono di ricavare le informazioni
sul sistema!
Spero che qualcuno mi sappia aiutare!
Grazie!

 ha scritto nel messaggio
news:b1h1m6$12d5qe$1...@ID-134361.news.dfncis.de...

........ this script:
Unit Serial;
Interface
Uses
  Dos;
Function Get_Serial_number(Drive : Byte) : String;
Implementation
Asm
  mov  ax, w
  mov  bx, b
  xor  cx, cx
  les  di, @result
  xor  si, si
  jcxz @@@20
 @@@10:
  xor  dx, dx
  div  bx
  cmp  dl, 10
  jb   @h10
  add  dl, 'A'-10
  jmp  @h20
 @h10:
   or  dl, '0'
 @h20:
  push dx
  inc  si
  loop @@@10
 @@@20:
  inc  cx
  or   ax, ax
  jnz  @@@10
  mov  cx, si
  jcxz @@@40
  cld
  mov  al, cl
  stosb
 @@@30:
  pop  ax
  stosb
  loop @@@30
 @@@40:
end;
Function Get_Serial_number(Drive : Byte) : String;
(* "Drive" is 0=current, 1=A:, 2=B: osv.. *)
Type
  Disk_info = Record
    RES     : Word;                 (* reserverad ska Vara 0 *)
    SER_NR1 : Word;                 (* Serinummer (bin{rt) *)
    SER_NR2 : Word;                 (* Serinummer (bin{rt) *)
    VOL     : Array [1..11] of Char;(* Volume Label *)
    TYP     : Array [1..8] of Char; (* tex 'FAT12' eller 'FAT16' *)
  end;
Var
   D_I    : Disk_Info;
   s1, s2 : String[5];
begin
  Asm
    push ds
    mov ax,ss
    mov ds,ax
    lea dx,D_I
    mov bl,drive
    mov ax,6900h
    int 21h
    pop ds
  end;
  s1 := NumAscii(D_I.SER_NR2, 16);
  s2 := NumAscii(D_I.SER_NR1, 16);
  While length(s1) < 4 do
    s1 := '0' + s1;
  While length(s2) < 4 do
    s2 := '0' + s2;
  Get_Serial_number := s1 + '-' + s2;
end;
end.
by MAX

E la unit Dos da dove la prendo? E esiste in Delphi 6 e di conseguenza è
compatibile con la libreria CLX(e quindi Kylix)?

    int 21h
<...>
Non ci siamo, le funzioni dell'interrupt 21h sono installate dai
sistemi DOS/Windows, non Linux & C.  Inoltre, invocare gli interrupt
direttamente, in modalità protetta solleva (giustamente) un'eccezione.
-- 
Andrea Laforgia
#exclude <windows.h>

Tu cosa mi consigli?

Newsgroup: it.comp.lang.delphi
Titolo: Creare un database

E' possibile a run time creare un database vuoto, con l'istruzione SQL
Create Database? Se si, come posso fare, utilizzando i componenti ADO? Ed
utilizzando invece una connessione ODBC?
Franz

la risposta è "dipende dal db" che purtroppo non hai indicato nel tuo
post......
A
--
Per rispondere non usare il reply ma scrivere al seguente indirizzo:
alsalvati(at)
supereva.it

 ADO? Ed utilizzando invece una connessione ODBC?
Se usi Access dai una occhiata qui:
http://delphi.about.com/library/weekly/aa072401b.htm
Ciao!
   Miyomo

 post......
Si, scusami, io in genere lavoro con Access '97, Access 2000 e MySQL.
Franz
Newsgroup: it.comp.lang.delphi
Titolo: PASSAGGIO DI PARAMETRI OPZIONALI IN UNA FUNZIONE

Ciao a tutti ,
                    avrei la necessità di creare una funzione che possa
avere dei parametri
opzionali. ex   : Inc(a)   ; Inc(a,2);



function MyInc(Value: Integer; Increment: Integer = 1): Integer;
Il secondo parametro, avendo un valore di default puoi non passarlo
esplicitamente.
Ciao.
-- 
"La velocità luce non è sufficiente Comandante Nunziatella, 
dobbiamo passare alla velocità smodata!"
Newsgroup: it.comp.lang.delphi
Titolo: Delphi e campi generator Firebird

Ciao a tutti .
Ho un problemino con i campi generator (Autoincrement)di Firebird  e delphi.
Ho creato una tabella con la chiave primaria composta da 2 campi , uno
Varchar (8) e uno integer.
Quello integer ho creato un generatore e un trigger.
Il tutto è stato fatto con IBExpert.
Sempre in IBExpert se inserisco record nuovi in automatico mi mette il
valore nel campo Autoincrement incrementandolo di 1 come è giusto che sia.
Con un programma in  delphi non mi incrementa il campo (che rimane sempre 0)
e ovviamente mi dà errore di key doppia (essendo la parte Varchar uguale in
più records)
Utilizzo componenti IBX (TIBDataSet).
====
Altra domanda sempre con TIBDataSet.
Per eseguire insert,update e delete devo usare i comandi insert, edit, (e
quindi post), delete ?
Non posso fare riferimento direttamente alle query che si appoggiano alle
proprietà  InsertSQL, DeleteSQL, ModifySQL ecc.
Ho dato un occhiata al source di questo controllo e mi sembra che le query
che fanno riferimento a queste proprietà sono di tipo protetto.
Se volessi utilizzare direttamente le query senza usare edit, insert, post,
delete devo usare IBQuery e IBUpdateSQL ?
Spero di essermi espresso in modo sufficientemente chiaro.
Buona giornata a tutti e grazie
Guido

delete devo usare IBQuery e IBUpdateSQL ?
Si.
Ciao da Enrico Giudici
ico...@tiscali.it
--- posted by geoForum on 
http://www.delphiedintorni.it

Newsgroup: it.comp.lang.delphi
Titolo: delphi 6 personal & mysql

Salve in D6 personal non ci sono db ma sapete se e' comunque possibile
usare i componenti db x mysql?
Indendo sia dal punto di vista della licenza che da quello di
componenti che ci girino :)
Grazie
-------------------------------------------------
Kirys <Remove DELTHIS from the address to reply>
 /|// /____/ Kirys Tech 2000: 
http://www.kt2k.com
/_|\\  // 2000

"Kirys" <uniK...@DELTHIShotmail.com> ha scritto nel messaggio
news:aq6dot8qabiarrr08...@4ax.com...

Prova a dare un'occhiata a 
www.mysql.com
Ci sono anche componenti Delphi che con minimi adattamenti funzionano anche
sulla versione 6.
Inoltre i componenti sono soggetti alla licenza d'uso di MySQL, molto più
"tranquilla" di quella Borland per i componenti database, specialmente
quelli RUNTIME per ciò che riguarda la loro distribuzione.
Qualcosa di più da fare rispetto a DBExpress o BDE/ADO, ma nessun problema
di distribuzione "non commerciale".
Ciao.
PS: "Indendo"??? Biscardismo? :o)
Newsgroup: it.comp.lang.delphi
Titolo: Microsotf Word

Ciao a tutti,
oggi alle 18.00 mi è stato chiesto di lanciare da una mia applicazione
MicroSoft Word 2000.
A parte usase SHELLEXECUTE, che cmq mi risulta difficile in quanto i
galoppini di Bill hanno inventato il modo di incasinare anche questo, vorrei
utilizzare qualche funzione o libreria Delphi.
Dovrei in pratica lanciare un foglio di Word 2000 (o '97, ma per ora 2000)
che contiene una lettera standard ed implementarlo con la Ragione sociale
del cliente che sto visualizzando in quel momento nella mia procedura.
Se qualcuno di Voi ha già affrontato il problema, mi darebbe qualche
indicazione ?
Ora cerco su torry, ma spero in Voi.
Ciao a tutti
--
Marco
Reporter Professional srl
supp...@reporterprofessional.it

 indicazione ?
Il problema non l'ho mai affrontato :), però lo affronterei così:
Crea un file Rtf da usare come template, mettedoci delle "parole chiave" 
dentro.
Prima di aprire il file word, fai una copia del file di template in un 
file temporaneo nuovo, sostituendovi al suo interno le parole chiave con 
i dati del cliente.
A questo punto puoi aprire il file temporaneo con la funzione 
ShellExecute, che provvederà ad aprire Word.

 del cliente che sto visualizzando in quel momento nella mia procedura.
Credo che tu abbia 3 strade principali:
1 - Ricreare a forza di metodi insert & co. il modello inserendo
direttamente la ragione sociale del cliente
2 - Creare in locale l'intero modello e poi darlo in pasto al processo
remoto
3 - Studiarti le istruzioni OLE che ti permettono di aprire i modelli
predefiniti da Word
Ciao
--
- Carlo -

 ha scritto nel messaggio
news:arggv2$lqm$1...@lacerta.tiscalinet.it...


GRAZIE A TUTTI
Ora mi applico.


Newsgroup: it.comp.lang.delphi
Titolo: Formato dxf

Ho la necessità di salvare in formato dxf dei disegni realizzati utilizzando 
il canvas di un TPaintBox. C'è un componente o una libreria che faccia 
questo? 

Io ho dovuto fare tutto da me, sia le procedure grafiche del canvas
sia la scrittura del DXF.
Se vuoi posso darti una mano


-- 
Using Opera's revolutionary e-mail client: 
http://www.opera.com/mail/

 Io ho dovuto fare tutto da me[...]
http://tinyurl.com/dpcd2
Newsgroup: it.comp.lang.delphi
Titolo: sempre finestra trasparente...

Salve a tutti ancora una volta,
sto cercando di creare un programmino semplice semplice con una spash
page iniziale trasparente, ho provato a creare con 
  Application.Initialize;
  Application.Title := 'KKF - botte da orchi autorun';
  Application.CreateForm(TCustomForm, Form1);
  Application.Run;
una form personalizzata, ovviamente volevo anche utilizzare la
CreateParams(TCreateParams) per impostare i la form come la voglio io,
ma non riesco, mi da errore di risorsa... probabilmente è una
banalità... ma non conosco il metodo da utilizzare, qualcuno mi può
aiutare? Grazie...
-- 
 /\     Giuseppe "Mitsuhashi" Lanzi
/  \       developer & web-builder
\  /
 ||     "Bisogna assolutamente vivere 
 ||   tutte le cose che ci stanno attorno 
 ||    tenendo conto del  loro destino"
 ||
 ||           fondatore della 
 ||        "Anderson & Mitsuhashi"
 ||   associazione culturale per lo studio
 ||    e lo sviluppo dei Giochi di Ruolo

 ha scritto nel messaggio
news:3A0A9ED0...@usa.net...

Purtroppo la descrizione "Errore di risorsa" è un po generica. Cmq ti posso
dire che creando così la form non la potrai utilizzare prima di aver
chiamato Run. Prova a crearla cosi:
Var
 Form1: TCustomForm;
Application.Initialize;
Form1:= TCustomForm.Create(Application);
// altri tuoi parametri
Application.Run;
end.
Dovrebbe funzionare.
Ciao
Davide Carrara

Newsgroup: it.comp.lang.delphi
Titolo: Porting Delphi7 su DelphiXE

Ciao,
ho effettuato il porting di un'applicazione da Delphi7 a DelphiXE.
Si sta verificando un'anomalia piuttosto strana.
Diversi controlli sulle finestre che prima funzionavano correttamente,
risultano bloccati..
Qualche idea?Suggerimento?
Faccio presente che ho una MDIForm e diverse CHILD più finestre
normali.. e su tutte il comportamento è lo stesso..
Grazie
Davide

 risultano bloccati..
in che senso? sono inattivi?
A.


Ciao,
sono bloccati nel senso che è come se fossero impostati con la
proprietà Read Only..
Questo vale per esempio per i TEdit, per le DBGrid.
Controllando anche sul Dfm è tutto ok!
..

 Controllando anche sul Dfm è tutto ok!
..non e' che hai degli eventi che impostano questi  controlli readonly
in base a determinate condizioni?
A.


.. no.. tutte le forms si comportano allo stesso modo.. e poi in
quest'applicazione non ho mai impostato tale proprietà a runtime..
accetto altri consigli :)

 wrote:

Trovato.. non si trattava di una regressione.. ma di una gestione
errata dell'evento onformshortcut....
Grazie..
Newsgroup: it.comp.lang.delphi
Titolo: Tradurre da inglese in italiano in D7

Scusate, ma qualcuno sa quale file deve essere editato per tradurre in 
Delphi 7 i vari messaggi (Yes, Cancel, Warning, Abort, ecc)?
In D5 sapevo dove mettere mani, ma in D7 non lo so proprio...
Ciao a tutti 


Prova ad usare questa Funzione:
Function _MSGBox(H: HWnd; Testo, Cap: String; Tipo: Integer): Integer;
Begin
  Result:= MessageBoxEx(H,PChar(Testo),PChar(Cap),Tipo,410);
End;
procedure TForm1.Button1Click(Sender: TObject);
begin
  _MSGBox(Handle, 'Testo', 'Caption', MB_ABORTRETRYIGNORE or 
MB_ICONQUESTION);
end;
Così non dovrai più tradurre quando cambi versione di Delphi.
Qusti sono i Flag 
Flag	Meaning
MB_ABORTRETRYIGNORE   The message box contains three push buttons: 
Abort, Retry, and Ignore.
MB_OK	              The message box contains one push button: OK. This 
is the default.
MB_OKCANCEL	      The message box contains two push buttons: OK and 
Cancel.
MB_RETRYCANCEL	      The message box contains two push buttons: Retry 
and Cancel.
MB_YESNO	      The message box contains two push buttons: Yes and 
No.
MB_YESNOCANCEL	      The message box contains three push buttons: Yes, 
No, and Cancel.
 
Specify one of the following flags to display an icon in the message box:
Flag	Meaning
MB_ICONEXCLAMATION,  An exclamation-point icon appears in the message 
box.
MB_ICONWARNING
MB_ICONINFORMATION,  An icon consisting of a lowercase letter i in a 
circle appears in the message box.
 MB_ICONASTERISK
MB_ICONQUESTION	     A question-mark icon appears in the message box.
MB_ICONSTOP,         A stop-sign icon appears in the message box.
MB_ICONERROR,
MB_ICONHAND
--- posted by geoForum on 
http://www.delphiedintorni.it

Newsgroup: it.comp.lang.delphi
Titolo: Come Visualizzare un campo blob ?

ciao a tutti, Ho questo problema ho salvato in una tabella sql un campo
blob (un file di word)
ora vi chiedo: Come posso fare per visualizzarlo sulla form?
Grazie

> ora vi chiedo: Come posso fare per visualizzarlo sulla form?
direttamente non lo fai. lo leggi, lo salvi in un tmp che aprirai in 
qualche modo.
A.

> ora vi chiedo: Come posso fare per visualizzarlo sulla form?
Ciao,
  io faccio così ma magari c'è qualche metodo più veloce:
negli eventi GetText e SetText del campo nella tabella/query aggiungi
le righe che ho segnato con la freccia:
procedure Tdm.fattureNoteGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
--->   text:=trim(sender.AsString);
end;
procedure Tdm.fattureNoteSetText(Sender: TField;
  const Text: String);
begin
--->   sender.AsString:=text;
end;
Ciao M.
Newsgroup: it.comp.lang.delphi
Titolo: zeos rave e tcpserver

Usando zeos 6.1.5 per accesso a Mysql il rave 5.0 BE di D7 e il 
tcpserver delle indy 9.0.18 mi capita che due richieste di report nello 
stesso momento generino un access violation sulle zquery.
Nella situazione che si scatenino due eventi che generino report cosa č 
meglio fare ? o meglio come li gestisco ?
Daniele

Daniele
	Ciao
	MassimoB
 
---------------------------------
http://www.massimobeschi.it/
---------------------------------
Se tu pagare come dici tu ...
Io lavorare come dico io ...
Se tu pagare come dico io ...
Io lavorare come dici tu ...
---------------------------------

 risposta più esauriente e risolutiva.
Innanzitutto ringrazio perchè alla luce delle info sulle Indy mi si 
risolve la metà del problema almeno per il futuro.
Posso dire che dopo aver fatto un pò di test ho notato che è la 
procedura di stampa o meglio la preparazione del report che genera gli 
errori (non può scrivere sulla canvas, recordset chiuso etc, con un più 
generico Handle di finestra non valido). Aggiungo che non è il metodo 
execute (almeno credo) dato che il metodo dovrebbe occuparsi di inviare 
il report già pronto alla coda di stampa.
Ho inserito un sistema di semafori (fatti da me) così:
stato -> variabile globale che può assumere 0 e 1 per 0 libero 1 
occupato posta a zero nell'OnCreate della form principale
ciclo che controlla lo stato della variabile con uno sleep(1)
e ciclo che controlla lo stato della stampante (se stà stampando)
   try
   while stato = 1 do begin
     Application.ProcessMessages;
     Sleep(1);
   end;
   //rpdev è un oggetto della Unit RpDevice di Rave Report
   //e che permette di verificare se la stampante è in fase di stampa
   //aggiungo che non ho idea di quanto il ciclo seguente possa servire
   //visto l'affermazione sul metodo execute di cui sopra ma...
   while rpdev.Printing = True  do begin
     Application.ProcessMessages;
     Sleep(1);
   end;
   //occupo lo stato	
   timeEx.stato := 1;
   qui accedo al report per gestirlo in tutte le sue parti accedo ai dati
   chiamo l'execute del rave e poi..
   stato := 0
   except;
   //se si verifica eccezione pongo comunque lo stato a 0
   stato :=0
   end;
dopo qualche test mi pare che così funzioni ma se fosse possibile una 
miglioria o utilizzare un metodo completamente diverso se più sicuro e 
affidabile ben venga.
Ringrazio ancora per la disponibilità.
Daniele
Newsgroup: it.comp.lang.delphi
Titolo: [D5] cambiare data creazione cartella

Ciao a tutti. Ho l'esigenza di cambiare la data di creazione di una
cartella, sfogliando l'help di delphi sono giunto a questa chiamata in
assembler:
mov ax, 7143h         ; Get or Set File Attributes
mov bl, Action        ; see below
mov cx, Attributes    ; see below
mov di, Date          ; see below
mov cx, Time          ; see below
mov si, MilliSeconds  ; see below
mov dx, seg Filename  ; see below
mov ds, dx
mov dx, offset Filename
int 21h
tutto ok (credo...) l'unica cosa che non ho capito come ricavare e' il
SEG e OFFSET del Filename. Sapete dirmi come fare per piacere?
Grazie!
  Fod.

 ha scritto nel messaggio
news:731b4726.0504...@posting.google.com...


 Handle:=FileOpen(NomeFile,fmOpenWrite);
[cut]
grazie della risposta.
avevo gia' provato in questa maniera, piu' precisamente usando OpenFile 
(procedura della ShellAPI). la OpenFile in piu' ha un parametro in cui 
ritorna alcune info, tra cui il messaggio d'errore che risultava essere 
sempre 5 (accesso negato al file, se non sbaglio); questo me lo dava 
solo per le cartelle, con i file non ho riscontrato problemi.
Ricordo che io ho necessita' di cambiare le date di una cartella... ti 
viene qualcos'altro in mente?

 viene qualcos'altro in mente?
Bastava guglare un po'...
// === [code: Setting directory date & time] ===
  procedure SetDirTime(dn: string; dt: TDateTime);
  var
    h: THandle;
    ft: TFileTime;
    st: TSystemTime;
  begin
    h:= CreateFile(PChar(dn),
      GENERIC_WRITE, FILE_SHARE_READ, nil,
      OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
    if h <> INVALID_HANDLE_VALUE then
    begin
      DateTimeToSystemTime(dt, st);
      SystemTimeToFileTime(st, ft);
      // last access
      SetFileTime(h, nil, @ft, nil);
      // last write
      SetFileTime(h, nil, nil, @ft);
      // creation
      SetFileTime(h, @ft, nil, nil);
    end;
    CloseHandle(h);
  end;
// === [end of code] ===
-- Jax====L'unica cosa che rende la vita sopportabile, è il non sapere che
cosaverrà dopo. (Ursula Le Guin)

> Bastava guglare un po'...
non ci crederai, ma ho guglato molto prima di rivolgermi al NG. spesso
il discorso e' un'altro: "bastava effettuare le ricerche su google con
le parole chiave giuste ", questo mi ha fregato :)
cmnq in questo modo funziona, grazie tante!
Fod.

 le parole chiave giuste ", questo mi ha fregato :)
No problem, sinceramente anch'io ho dovuto scartabellare un po' prima di
trovarla :)
-- 
Jax
====
Il contribuente è uno che lavora per lo stato senza essere un impiegato
statale. (Ronald Reagan)
Newsgroup: it.comp.lang.delphi
Titolo: Interbase Remoto con DBExpress

Ciao a tutti,
devo fare un'applicazione che usa IB in remoto. Ora non avendo due computer
ho istallato l'applicazione e IB sulla stessa macchina. Sono andato in
IBConsole ho fatto Register ed ho specificato:
Remote Server
Server Name: localhost
Network Protocol: TCP/IP
Alias: MyServer
User Name: SYSDBA
Password: masterkey
poi ho fatto "Create DataBase":
FileName: C:\DB\MyDB.gdb
Alias: MyDB
In delphi ho messo su di un form un "SQL Connection" dal dbExpress. Ci ho
premuto 2 volte con il mouse ed ho compilato i campi:
Connection Name: IBConnection
DataBase: \\localhost\MyDB.gdb
User_Name: SYSDBA
Password: masterkey
Quando setto la proprietą connected a true mi viene fuori una form di
autenticazione.
Dopo aver inserito:
User_Name: SYSDBA
Password: masterkey
mi viene fuori questo messaggio di errore: Unable to complete network
request to host "localhost". Failed to establish connection. unknown Win32
error 52
Qualcuno sa dirmi dove sbaglio...
Grazie in anticipo, Samuele

 ha scritto nel messaggio
news:sUINa.150697$lK4.4...@twister1.libero.it...

Nella proprietą database prova a mettere C:\DB\MyDB.gdb e non
\\localhost\MyDB.gdb.
Ciao
Giorgio


Si ma io ho bisogno di collegarmi in remoto, quindi adesso uso "localhost"
ma poi al suo posto userņ il nome del server.
Grazie

 ha scritto nel messaggio
news:OoSNa.150056$Ny5.4...@twister2.libero.it...


DataBase: \\localhost\MyDB.gdb
No.
Interbase non accetta percorsi UNC.  Quando sei in locale devi usare
il percorso locale (C:\...), quando sei in remoto, devi usare il nome
del server (o l'IP) e il percorso locale al server, separati dai :
(due punti):
"IP:percorso" (es.: "PCSERVER:C:\paperino.gdb", oppure qualcosa come
"194.168.0.100:C:\paperino.gdb").
-- 
Andrea Laforgia - a.laforgia(at)
libero.it
"There are three kinds of people in this world; 
 those who are good at maths and those who aren't".
Newsgroup: it.comp.lang.delphi
Titolo: Application.Terminate;

ho la Form principale, che si apre dopo la Form2 (dove si inserisce la
password).
ho messo un pulsante Chiudi sulla Form2 che avvia il comando ->
Application.Terminate;
il mio problema č che cosě facendo lui prima mi chiude la Form2, poi apre la
Form principale, e poi chiude il programma (dopo aver pure fatto l'evento
onFormShow...)
Come faccio a terminare direttamente il programma quando si preme su
Chiudi?... senza fare nulla di altro...
grazie :-)
Rollo

Chiudi?... senza fare nulla di altro...
Usa dei TBitBtn come bottoni della finestra e usa :
program Project1;
uses
  Forms,
  Dialogs,
  Controls,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};
{$R *.RES}
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  // se ho premuto "Ok" vado avanti
  if ( Form2.ShowModal = mrOk ) then
    Application.Run
  else // altrimenti, se ho premuto "Chiudi", esco
    ShowMessage( 'Sto uscendo senza visualizzare Form1' ) ;
end.


Chiamare Halt puo' creare dei problemi.
Application.Terminate è il modo migliore per terminare un programma in
quanto lo fa "gentilmente".
La cosa Migliore da fare, secondo la mia modestissima opinione è
quella di gestire la proprietà terminated.
per esempio:
procedure TForm1.FormShow(Sender: TObject);
begin
  if not Application.Terminated then begin
  end;
end;
Ciao,
Massimo.
-- 
"Ciao Rex, che cavolo di situazione eh? Due dentro, due fuori, puo' succedere di tutto!"

Newsgroup: it.comp.lang.delphi
Titolo: Aiuto per iniziare

Salve
Vorrei imparare a programmare in Delphi.
Con quale versione cominciare, con quale libro?
Esiste on-line un tutorial o un corso in italiano?
Grazie

Grazie
	Ciao
	MassimoB
 
---------------------------------
http://www.massimobeschi.it/
---------------------------------
Se tu pagare come dici tu ...
Io lavorare come dico io ...
Se tu pagare come dico io ...
Io lavorare come dici tu ...
---------------------------------

Newsgroup: it.comp.lang.delphi
Titolo: Ordine in ListView e altro

1. Ho necessità che i dati in una Listview vengano riordinati in maniera 
inversa (dalla Z alla A) come si fa?
2. Come si fa a sapere quante righe sono presenti in una Listview riempita?
Grazie per l'aiuto (e scusate se, soprattutto il secondo quesito, è idiota)

 2. Come si fa a sapere quante righe sono presenti in una Listview riempita?
Gli elementi di un controllo *TListView* sono accessibili dalla 
proprietà /Items/; la proprietà /Count/ di Items ti restituisce il 
numero degli elementi caricati all'interno del controllo.
Ciao! :-)
-- 
Marco «Alka» Breveglieri
(marco [@] abls [.] it )
  ABLS Team S.n.c. - Software & Web
  42019 Scandiano (Reggio Emilia)
 
http://www.abls.it
Newsgroup: it.comp.lang.delphi
Titolo: Cattura digitazione tasti

Salve,
qualcuno conosce in che modo è possibile catturare i caratteri digitati
dalla tastiera?
Devo costruire un'applicazione che girando nella try icon area,
riesca a scrivere su un file di testo tutte le lettere digitate dalla
tastiera.
Quale API o funzione di delphi devo usare per lo scopo?
E se possibile, estendere tale funzionalità anche alle combinazioni di
tasti, tipo ctr+v, ctr+c, ecc.
ringrazio
acaro
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 tasti, tipo ctr+v, ctr+c, ecc.
Cerca con Google "keyboard Hook", ti dara' risultati tipo questo
http://delphi.about.com/od/windowsshellapi/a/keyboard_hook.htm
Ciao
ACSH
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Grazie ACSH, molto esaustivo.


Newsgroup: it.comp.lang.delphi
Titolo: operatore booleano ternario, esiste in delphi?

Ciao a tutti.
Qualcuno sa se esiste l'operatore ternario booleano in delphi?
Quello che si usa in un assegnazione, con tre argomenti:
il primo booleano;
gli altri due, omogenei alla variabile X a sinistra del segno di
assegnazione,
    rappresentano i valori da assegnare ad X stessa qualora il primo
argomento
    sia vero o falso, rispettivamente.
In Java per esempio esiste la forma
     y = w == x ? 5 : 3    (se non ricordo male la sintassi)
che assegna all'intero y il valore 5 se w ed x sono uguali, 3
altrimenti.
Anche in VBA e' disponibile la stessa cosa: nell'esempio sopra
scriveremmo:
     y = iif (w = x, 5, 3)    (o piu' o meno)
In Delphi c'e' qualcosa di simile?
Ciao e grazie.

 ha scritto nel messaggio 
news:1154505960.6...@i3g2000cwc.googlegroups.com...


 
Ovviamente si...
ifthen( condizione, vero, falso);
ciao
S

      y = w == x ? 5 : 3    (se non ricordo male la sintassi)
Il costrutto ?: è derivato dal C ed è quel tipico "syntactic sugar" di cui
si può e si dovrebbe far benissimo a meno.  In Delphi (da una certa
versione in poi, credo la 7) esiste IfThen() ma è meno potente del
relativo costrutto C.
Sconsigliato il suo utilizzo, ovviamente, per ragioni di leggibilità del
codice.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Concordo pienamente, è come farsi male da soli.
GP 

Ok grazie a tutti ciao!
Newsgroup: it.comp.lang.delphi
Titolo: come si fa a fare la potenza di un number?

...e anche la radice quadrata di un numero :-)

 ha scritto nel messaggio
news:SY7P6.23544$h9.18...@news.infostrada.it...



L'operatore ^ si utilizza per il deferenziamento di puntatori; per elevare
ad una determinata potenza un numero, includi la unit 'Math.pas' nella
clausola Uses della unit in cui devi utilizzare le funzioni matematiche; ti
verrà resa disponibile la funzione Power() che consente di elevare un numero
(base) ad una certa potenza (esponente); se vuoi calcolare la radice
quadrata di un numero, usa invece Sqrt(); Sqr(), al contrario, eleva al
quadrato.
Per maggiori informazioni sull'uso di queste funzioni, consulta la Guida in
linea di Delphi.
Ciao!
--
/\/\arco Breveglieri (
ma...@abls.it
)
· SINTESI S.r.l. (
www.sintesi.com
)
· ABLS Team (
www.abls.it
)


 ha scritto nel messaggio
news:lF8P6.3204$Uo3....@news6.giganews.com...


 ha scritto nel messaggio
news:LS8P6.23900$h9.18...@news.infostrada.it...


...e anche la radice quadrata di un numero :-)
La radice e la potenza sono la stessa operazione.
potenza := exp( esponente * ln( base ) ) ;
radice  := exp( 1/indice * ln( base ) ) ;
8^3 si calcola come :
potenza := exp( 3 * ln( 8 ) ) ;
radice quinta di 32 si calcola come :
radice := exp( 1/5 * ln( 32 ) ) ;
--
Walkie...@Libero.It (ICQ# 8143647)

Newsgroup: it.comp.lang.delphi
Titolo: Corso Delphi in Lingua Spagnola

Salve ragazzi,
ho trovato un bellissimo corso di Delphi in lingua spagnola.
E' utilissimo a chi si trova all'inizio e l'ho trovato molto meglio degli
altri scritti in italiano
e disponibili su internet.
Anche se è in spagnolo si capisce benissimo.
Lo trovate a questo link:
http://usuarios.lycos.es/talavera/delphi.htm
Sperando di esservi stato utile vi saluto.
Donato Di Tullio

 ha scritto nel messaggio
news:98Vob.79471$e5.29...@news1.tin.it...


Newsgroup: it.comp.lang.delphi
Titolo: Stored procedure con Interbase

Salve, avrei la necessità con Interbase 6 di creare una stored
procedure che prenda i dati da due database diversi. Sapete come fare?
Inoltre sapete se con Delphi 5 sia possibile prendere i dati dai due
database con un'unica query?
Grazie in anticipo.
Alessandro

 database con un'unica query?
Di Delphi invece sono abbastanza certo: siccome una Tquery viene eseguita
sul db ad essa collegato attraverso la property DatabaseName (o equivalente
per ADO o DbExpress), direi che no ci sia verso. L'unica cosa che mi viene
in mente è duplicare importandoli i dati necessari in uno dei due db ed
eseguire su di esso la query... di più, non so.
Saluti (e auguri di Buon Natale)
        Marco Bortolani
        info<NOSPAM>@
marcobortolani.it

...

Grazie lo stesso.
Saluti e Buon Natale.
Alessandro
Newsgroup: it.comp.lang.delphi
Titolo: 2 Domande su Database mdb con ADO

Sono riuscito grazie ad un link di Morde
(
http://www.efg2.com/Lab/Library/Delphi/ADO/Northwind/index.html
)
ad accedere ad una tabella e a visualizzare il contenuto per mezzo di
1 form, 1 datamodule, 1 ADOQuery, 1 ADOConnection (MS Jet 4), 1 DataSource.
Mi chiedevo ora, per i miei scopi più frequenti, come fare ad implementare
la possibilità di aggiungere un nuovo record e di eliminarne uno
pre-esistente.
Rigrazio anticipatamente, 
-- 
Poochie ©
Teoricamente la teoria è uguale alla pratica, ma in pratica non lo è...

 Rigrazio anticipatamente, 
puoi fare così:
Datasource.DataSet.Insert //per inserire i record
Datasource.DataSet.Post
   //per memorizzare quello che hai inserito
Datasource.DataSet.Delete  //per eliminare un record
//se vuoi che ti venga chiesto la conferma prima di eliminare:
If MessageDlg('Eliminare il record corrente?',MTConfirmation,
[mbOk,mbNo],0)=mrOk then
DateSource.Dataset.Delete
end;
//è da un po' che non uso delphi, spero di non essere arrugginito, 
ovviamente accetto consigli.
Inviato da 
www.mynewsgate.net

[CUT]
Grazie del suggerimento, un'altra cosa:
ADOQuery.SQL ho rpovato ora a impostarla così:
SELECT 'ID impiegato', Cognome, Nome, Titolo, Indirizzo, Città, Foto
FROM Impiegati
ORDER BY Cognome, Nome
Il problema è la colonna che ha come titolo una stringa con uno spazio (ID
impiegato), provando con gli apici o con i doppi apici, quando attivo la
Query il programma non da errore, ma nella mia DBGrid vedo al posto di ID
impiegato "Expr1000" e tutti i valori in ogni record sono "ID Impiegato",
quindi ne deduco che la mia sintassi dovrebbe servire ad altro... ergo come
faccio a immettere in SQL il nome di una colonna della tabella contenente
uno spazio?
Grazie ancora,


 Grazie ancora,
Come non detto, ho scoperto che il nome del campo è sempre privo di spazi e
che a contenerli è eventualmente l'etichetta... ;)
-- 
Poochie ©
Se un filosofo è un uomo cieco, in una stanza buia, che cerca un gatto
nero, che non c'è, un teologo è l'uomo che riesce a trovare quel gatto
(Bertrand Russell)

 spazi e che a contenerli è eventualmente l'etichetta... ;)
Comunque, se c'e' uno spazio, racchiudi il campo
in parentesi quadre [ID IMPIEGATO]
Ciao
  miyomo
Newsgroup: it.comp.lang.delphi
Titolo: delphi3 vs delphi 5

Conosco un po di pascal. Ora vorrei cimentarmi nel Delphi. Possiedo il
Delphi 3. E' meglio che imparo prima il 3 e poi passo al cinque? Quali sono
le differenze?
Grazie molto.
--
--
Abruzzo Silvio
goku_...@libero.it
don't send source and binaries
don't write in HTML

Cambiano un bel po di cose.
Gia' tra 4 e 5 le differenze sono molto marcate.
Consiglio: in questo settore chi si ferma è perduto.
Se inizi, inizia bene: usa d5
Saluti
AS
"Se è Microsoft non funziona"

 Quali sono le differenze?
non moltissime, e comunque relativamente importanti; diciamo che il succo
della programmazione a 32 bit non e' cambiato da D2, si sono aggiunti
gadget, accessori, componenti (es. quelli internet, che sono stati
migliorati da D3 a D5), e molti bug; per il resto, oggi come oggi, si
potrebbero sviluppare ottime applicazioni con D2 molto superiori ed
efficienti di qualunque programma fatto in VB6 ( ;) ).. sul mio sito ne ho
qualche esempio (es. 
www.sarasoft.it/nova.htm
 e' un gestionale fatto in D2
per gli studi legali, e tuttora mantenuto, anche se oggi sviluppo in D4)
Ciao, Sandro

Ma il 6 quando esce?
Sai se su 
imprise.com
 ci sono delle pagine che ne parlano?


 Sai se su 
imprise.com
 ci sono delle pagine che ne parlano?
che io sappia no, ma l'info di sopra me la hanno comunicato dalla Borland
Italia.. per il resto pare silenzio totale, forse stanno cercando di
spingere il piu' possibile le vendite di D5, se fossi cosi' non ci sarebbe
da biasimarli..
Ciao, Sandro

 Conosco un po di pascal. Ora vorrei cimentarmi nel Delphi. Possiedo il

Newsgroup: it.comp.lang.delphi
Titolo: FormFactory

Ciao a tutti,
vorrei implementare una classe che mi faccia da formfactory.
Nella mia idea piu' semplice dovrebbe avere un metodo che ricevendo in 
ingresso il "ClassName" di una form, la crei e mi ritorni l'oggetto.
Ho dato un'occhiata su google, ma gli esempi piu' significativi sono in 
tedesco che mi e' oscuro.
E' la prima volta che cerco di utilizzare design pattern diversi dal 
singleton, e sono un po' spaesato.
Qualcuno puo' darmi una spinta?
Grazie
Massimiliano


prova con questa spinta
unit MainMenuFactory;
interface
uses
  Classes, Forms;
type
  TMenuAction = TForm;
  TMenuActionClass = class of TMenuAction;
  TMenuActionFactory = class
  private
    MenuActionList: TList;
    function GetCount: Integer;
    function GetMenuAction (Index: Integer): TMenuAction;
  public
    constructor Create;
    destructor Destroy; override;
    procedure Register (MenuActionClass: TMenuActionClass);
    property Count: Integer read GetCount;
    property MenuAction[Index: Integer]: TMenuAction read GetMenuAction;
default;
  end;
var
   MenuActions: TMenuActionFactory;
{===========================================================================
===}
implementation
constructor TMenuActionFactory.Create;
begin
  inherited;
  MenuActionList := TList.Create;
end;
{---------------------------------------------------------------------------
---}
destructor TMenuActionFactory.Destroy;
begin
  MenuActionList.Free;
  inherited;
end;
{---------------------------------------------------------------------------
---}
function TMenuActionFactory.GetCount: Integer;
begin
  Result := MenuActionList.Count;
end;
{---------------------------------------------------------------------------
---}
function TMenuActionFactory.GetMenuAction (Index: Integer): TMenuAction;
begin
  Assert ((Index >= 0) and (Index < Count), 'Indice fuori range');
  //
  // Creo e restistuisco l'opzione selezionata
  //
  Result := TMenuActionClass(MenuActionList[Index]).Create (nil);
end;
{---------------------------------------------------------------------------
---}
procedure TMenuActionFactory.Register (MenuActionClass: TMenuActionClass);
begin
  MenuActionList.Add(MenuActionClass);
end;
{===========================================================================
===}
initialization
  MenuActions := TMenuActionFactory.Create;
finalization
  MenuActions.Free;
end.

Newsgroup: it.comp.lang.delphi
Titolo: Come si legge un parametro del registro da Delphi?

Come da oggetto.
Grazie in anticipo.
Pippo. 

Pippo. 
	Ciao
	MassimoB
 
---------------------------
http://www.massimobeschi.it/

 ha scritto nel messaggio 
news:SB%Yd.22038$WC1...@tornado.fastwebnet.it...


Ciao.

Newsgroup: it.comp.lang.delphi
Titolo: Richiesta di aiuto

Spero che possiate risolvere il mio problema, premetto che sono un
principiante.
Vorrei sapere come posso ridimensionare automaticamente la dimensione della
form e dei componenti in essa contenuti.
Il mio problema č questo: il mio "programma" viene visualizzato
correttamente con una risoluzione video 1024x768 ma qualora viene modificata
la risoluzione video, ad esempio 800x600, i componenti situati sulla estrema
destra della form non vengono piů visualizzati.
Vorrei ottenere la visualizzazione di tutti i componenti senza utilizzare le
ScrollBar, in definitiva vorrei che il programma fosse visualizzato in modo
corretto a pieno schermo sia con una risoluzione di 800x600 sia di 1024x768.





Newsgroup: it.comp.lang.delphi
Titolo: Creare Stored Procedure con IBSQL

Salve ragazzi avrei Bisogno di creare una stored procedure con il 
componente IBSQL in delphi 5. La Stored Procedure che devo creare è la 
seguente:
CREATE PROCEDURE AGG_COSTI (
    ID_COSTO INTEGER,
    COD VARCHAR (20),
    BARCODE VARCHAR (20),
    GM VARCHAR (5),
    MARCA VARCHAR (5),
    TIPO VARCHAR (5),
    UM VARCHAR (5),
    DESCR VARCHAR (40),
    COSTO DECIMAL (10, 2))
RETURNS (
    FLAG INTEGER)
AS
BEGIN
  UPDATE "COSTI" SET
  "COD"=:COD,
  "BARCODE"=:BARCODE,
  "GM"=:GM,
  "MARCA"=:MARCA,
  "TIPO"=:TIPO,
  "UM"=:UM,
  "DESCR"=:DESCR,
  "COSTO"=:COSTO
  WHERE "ID_COSTO"=:ID_COSTO;
  SUSPEND;
  FLAG=0;
END
se esegue questo script tramite IBSQL il risultato che vedo tramite 
IBOConsol su Firebird è il Seguente:
CREATE PROCEDURE "AGG_COSTI" 
(
  "ID_COSTO" INTEGER,
  "COD" VARCHAR(20),
  "BARCODE" VARCHAR(20),
  "GM" VARCHAR(5),
  "MARCA" VARCHAR(5),
  "TIPO" VARCHAR(5),
  "UM" VARCHAR(5),
  "DESCR" VARCHAR(40),
  "COSTO" DECIMAL(10, 2)
)
RETURNS
(
  "FLAG" INTEGER
)
AS
BEGIN EXIT; END ^
ALTER PROCEDURE "AGG_COSTI" 
(
  "ID_COSTO" INTEGER,
  "COD" VARCHAR(20),
  "BARCODE" VARCHAR(20),
  "GM" VARCHAR(5),
  "MARCA" VARCHAR(5),
  "TIPO" VARCHAR(5),
  "UM" VARCHAR(5),
  "DESCR" VARCHAR(40),
  "COSTO" DECIMAL(10, 2)
)
RETURNS
(
  "FLAG" INTEGER
)
AS
BEGIN
  UPDATE "COSTI" SET
  "COD"=?,
  "BARCODE"=?,
  "GM"=?,
  "MARCA"=?,
  "TIPO"=?,
  "UM"=?,
  "DESCR"=?,
  "COSTO"=?
  WHERE "ID_COSTO"=?;
  SUSPEND;
  FLAG=0;
END
Come potete notare mi sostituisce ":COD, :BARCODE ...." con ?. Come posso 
evitare questo?
Spero di essermi spiegato correttamente. Grazie a tutti
--- posted by geoForum on 
http://www.delphiedintorni.it

Premesso che non è molto pulito che una app abbia il potere di fare cio 
(pensa che bello: mo cancello stored procedure e buonanotte al db...!), 
la cosa ha una spiegazione molto semplice....
Il tuo codice viene visto come un qualcosa che necessita di parametri 
per funzionare e, come tale, IBSql al posto dei parametri passa dei "?" 
come fa anche il bde.
Ti è proprio necessario fare cio?
Se usi d6/d7 mi sembra che vi sia un qualcosa negli ibx che potrebbe 
fare al caso tuo....
AS