пытаюсь создать базу, через TIBDataBase, ругается что не введены параметры пользователя и пароля.
все завел, пробывал и так и эдак - не выходит.
мож какая хитрость есть?
статью здесь читал про то как работать с IBX, счас не могу найти...
TIBDataBase не создает базу
не поверишь, заводил.
object IBDatabase1: TIBDatabase
DatabaseName = 'MYBASE.FDB'
Params.Strings = (
'user_name=SYSDBA'
'password=masterkey'
'lc_ctype=WIN1251')
LoginPrompt = False
DefaultTransaction = Tr1
IdleTimer = 0
SQLDialect = 3
TraceFlags = []
Left = 32
Top = 8
end
и вот так
IBDatabase.Params.Add('USER "SYSDBA"');
IBDatabase.Params.Add('PASSWORD "masterkey"');
IBDatabase.Params.Add('PAGE_SIZE 4096');
и так тоже
IBDatabase.Params.Add('user_name=SYSDBA');
IBDatabase.Params.Add('password=masterkey');
IBDatabase.Params.Add('lc_ctype=WIN1251');
чего не так?
object IBDatabase1: TIBDatabase
DatabaseName = 'MYBASE.FDB'
Params.Strings = (
'user_name=SYSDBA'
'password=masterkey'
'lc_ctype=WIN1251')
LoginPrompt = False
DefaultTransaction = Tr1
IdleTimer = 0
SQLDialect = 3
TraceFlags = []
Left = 32
Top = 8
end
и вот так
IBDatabase.Params.Add('USER "SYSDBA"');
IBDatabase.Params.Add('PASSWORD "masterkey"');
IBDatabase.Params.Add('PAGE_SIZE 4096');
и так тоже
IBDatabase.Params.Add('user_name=SYSDBA');
IBDatabase.Params.Add('password=masterkey');
IBDatabase.Params.Add('lc_ctype=WIN1251');
чего не так?
Re: TIBDataBase не создает базу
Метод CreateDatabase тупо передает серверу DDL-statement CREATE DATABASE (обрати внимание на Params.Text):Kaa писал(а):мож какая хитрость есть?
статью здесь читал про то как работать с IBX, счас не могу найти...
procedure TIBDatabase.CreateDatabase;
var
tr_handle: TISC_TR_HANDLE;
begin
CheckInactive;
tr_handle := nil;
Call(
FGDSLibrary.isc_dsql_execute_immediate(StatusVector, @FHandle, @tr_handle, 0,
PChar('CREATE DATABASE ''' + FDBName + ''' ' + {do not localize}
Params.Text), SQLDialect, nil),
True);
end;
В результате должно получиться примерно такое:
CREATE DATABASE 'C:\DataBase\Database.gdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1251;
Поэтому параметры надо перечислять как для CREATE DATABASE (это не совсем то, что требуется для подсоединения в БД):
Кусочек из Help'а:
Description
Call CreateDatabase to create a database using Params as the rest of the CREATE DATABASE command.
For example, if you wanted to create a local InterBase database, you could do the following:
1. Set the database name to the drive, path, and filename of the database file.
2. Set Params to the parameter for the CREATE DATABASE statement:
USER 'SYSDBA'
PASSWORD 'masterkey'
PAGE_SIZE 4096
3. Set the SQLDialect value.
4. Call the CreateDatabase method.