Newsgroup: it.comp.lang.delphi
Titolo: IBDatabase1.CreateDatabase non funziona, help!

Salve a tutti.
Ho un grosso problema: vorrei creare runtime un database Interbase usando i
componenti IBX (ho Delphi5) ma non ci sono riuscito. Il codice che ho
scritto č:
  with IBDatabase1 do
  begin
    Close;
    DatabaseName := FilenameEdit.Text;
    Params.Clear;
    Params.Add('user_name=sysdba');
    Params.Add('password=masterkey');
    CreateDatabase;
  end
Su CreateDatabase viene sollevata un'eccezione di tipo EInterbaseError che
dice: "your user name and password are not defined. Ask your database
adimnistrator to setup an Interbase login"
Ho installato il server di Interbase e usando "Interbase Interactive SQL" da
"Interbase Server Manager" posso tranquillamente creare un database (ergo:
non c'č nessun errore nell'nstallazione del server)
Dov'č che sbaglio?
Grazie fin d'ora
  Fabrizio

   end
Interbase è case sensitive.
Ora non ricordo ma la copiia sysdba/masterkey ha almeno uno
dei valori in maiuscolo.
Bye
AS
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Interbase è case sensitive.
Qualche prova l'ho fatta, provando alcune combinazioni (non ricordo quali)
tra le 4 possibili (SYSDBA/masterkey, sysdba/MASTERKEY, sysdba/masterkey,
SYSDBA/MASTERKEY).
Quello che non mi convince di questa argomentazione è che se metto le parole
in minuscolo come ho fatto sopra e poi provo a collegarmi a un database già
esistente si collega senza problemi.
Se qualcuno ha usato un codice come questo e gli funzionava può dirmelo?
Così smetto di pensare che il codice sopra sia sbagliato e comincio a
convincermi che c'è qualcosa di sbagliato in come è installato Interbase
Grazie a tutti
Fabrizio

Mi sorge un dbubbio.
Tu prendi il nome di file da un tedit.
Ma come cartella cosa usi?
A me una volta è successo di non riuscire a creare un db
da IBConsole xche sbagliavo il nome della cartella.
Non esistendo la cartella la console si inkazzava.


Ho fatto un rapido test.
Nella unit IBdatabase, il metodo createdatabase usa questa
chiamata ad una api di interbase:
 isc_dsql_execute_immediate(StatusVector, @FHandle, @tr_handle, 0,
                               PChar('CREATE DATABASE ''' + FDBName +
''' ' + {do not localize}
                               Params.Text), SQLDialect, nil),
questa chiamata fallisce.
Ora, o si cerca di capire xche oppure si chiama direttamente
il CREATE DATABASE da una query.
Bye
AS
"Se è Microsoft non funziona"


 Se qualcuno ha usato un codice come questo e gli funzionava può dirmelo?
procedure TForm1.Button1Click(Sender: TObject);
begin
  IBDatabase1.DatabaseName := 'C:\PIPPO.GDB';
  IBDatabase1.Params.Clear;
  IBDatabase1.Params.Add('USER "SYSDBA"');
  IBDatabase1.Params.Add('PASSWORD "masterkey"');
  IBDatabase1.Params.Add('PAGE_SIZE 4096');
  IBDatabase1.SQLDialect := 3;
  IBDatabase1.CreateDatabase;
end;


   IBDatabase1.Params.Add('PASSWORD "masterkey"');
Maledetti doppi apici.
Sulla guida di interbase per create database, quando si fa riferimento
a nome utente e pw usa gli apici singoli....
Comunque ho toppato: avrei dovuto provarci.... :(((
Bye e grazie
AS
 
"Se č Microsoft non funziona"


   IBDatabase1.Params.Add('PASSWORD "masterkey"');
mentre per aprirne uno già esistente si usa quelli del mio codice, cioè:
    IBDatabase1.Params.Add('user_name=sysdba');
    IBDatabase1.Params.Add('password=masterkey');
Boh? Comunque l'importante è che funzioni, grazie ancora
  Fabrizio

 Comunque ho toppato: avrei dovuto provarci.... :(((
:)
Non preoccuparti e grazie
Ciao
  Fabrizio