TIBDataBase не создает базу

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Kaa
Сообщения: 16
Зарегистрирован: 01 июн 2005, 19:51

TIBDataBase не создает базу

Сообщение Kaa » 23 июн 2005, 17:19

пытаюсь создать базу, через TIBDataBase, ругается что не введены параметры пользователя и пароля.
все завел, пробывал и так и эдак - не выходит.

мож какая хитрость есть?
статью здесь читал про то как работать с IBX, счас не могу найти...

Kaa
Сообщения: 16
Зарегистрирован: 01 июн 2005, 19:51

Сообщение Kaa » 23 июн 2005, 17:20

Your user name and password are not defined. Ask your database administrator to set up a Firebird login

вот такое сообщение выдает

pami
Сообщения: 15
Зарегистрирован: 20 июн 2005, 16:02

Сообщение pami » 24 июн 2005, 08:42

Ну дык назначь юзернейм и пассворд. в параметрах

Kaa
Сообщения: 16
Зарегистрирован: 01 июн 2005, 19:51

Сообщение Kaa » 24 июн 2005, 11:35

не поверишь, заводил.

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');

чего не так?

barrycl
Сообщения: 1
Зарегистрирован: 07 июл 2005, 12:44

Re: TIBDataBase не создает базу

Сообщение barrycl » 07 июл 2005, 12:55

Kaa писал(а):мож какая хитрость есть?
статью здесь читал про то как работать с IBX, счас не могу найти...
Метод CreateDatabase тупо передает серверу DDL-statement CREATE DATABASE (обрати внимание на Params.Text):

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.

Ответить