
    Новые сообщения [новые:0]
  
  Дайджест 
  
  Горячие темы
    Избранное [новые:0]
  
Форумы 
 
Пользователи 
Статистика 
Статистика нагрузки 
    Мод. лог 
  
  Поиск 
  | 
| 
 21.08.2020, 04:45 
 | 
|||
|---|---|---|---|
  
  | 
|||
Непонятное поведение ibec_CreateDatabase  | 
|||
| 
 #18+ 
  
    
  Здравствуйте! Пытаюсь вызвать скрипт наполнения созданной БД из другого скрипта через ibec_ExecSQLScript. Если использовать скрипт test1.sql в том виде, в котором он выложен, то получаем ошибку  Ошибка выполнения IBEScriptIBEScript Version 2020.8.11.1 Copyright (c) 2002-2020 IBExpert Ltd (www.ibexpert.com) Executing script: test1.sql (Line: 24) : Executing IBEBlock... (Line: 4) : Creating domain DMN_BOOL... Successful Error occurred while executing following statement (line 9): -------- STATEMENT ---------- DESCRIBE DOMAIN DMN_BOOL 'Домен для хранения булевского типа 0 - ложь !0 - истина' -------- ERROR ---------- Incompatible column/host variable data type. Dynamic SQL Error. SQL error code = -303. Malformed string. (Line: 9) : Setting description for DMN_BOOL... FAILED! Script executed successfully. Total execution time: 109ms  Выполнение без ошибокIBEScript Version 2020.8.11.1 Copyright (c) 2002-2020 IBExpert Ltd (www.ibexpert.com) Executing script: test1.sql (Line: 24) : Executing IBEBlock... (Line: 4) : Creating domain DMN_BOOL... Successful (Line: 9) : Setting description for DMN_BOOL... Successful Script executed successfully. Total execution time: 188ms  test1.sql  Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.  test2.sql  Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 21.08.2020, 05:30 
 | 
|||
|---|---|---|---|
Непонятное поведение ibec_CreateDatabase  | 
|||
| 
 #18+ 
  
    
  А сервер какой?  Я пока навскидку вижу проблему в строке коннекта: names=win1251 - это эквивалент SET NAMES WIN1251, а при создании БД синтаксис другой - DEFAULT CHARACTER SET WIN1251 - и в строке опций он должен быть указан как DefaultCharset=win1251. Т.е., база у тебя создалась без указания дефолтового чарсета, как минимум. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 21.08.2020, 05:43 
 | 
|||
|---|---|---|---|
  
  | 
|||
Непонятное поведение ibec_CreateDatabase  | 
|||
| 
 #18+ 
  
    
  IBExpert, FB версии 2.5.9. Добавление DefaultCharset в ConnectionString Код: sql 1. ситуации не изменило. Я же написал, что пробовал разные способы. Все, что описано в документации к ibec_CreateDatabase и к ConnectionString на сайте IBExpert. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 21.08.2020, 07:51 
 | 
|||
|---|---|---|---|
Непонятное поведение ibec_CreateDatabase  | 
|||
| 
 #18+ 
  
    
  Посмотрел... В общем, сейчас таки надо переконнекчиваться (что у тебя и делается в закомментированной части), потому что при создании БД получается коннект без указания чарсета - names=win1251 при создании просто игнорируется. Поправим. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 22.08.2020, 06:13 
 | 
|||
|---|---|---|---|
Непонятное поведение ibec_CreateDatabase  | 
|||
| 
 #18+ 
  
    
  Попробуй свежую версию. Кое-что изменил: если DefaultCharset в строке коннекта отсутствует, то ibec_CreateDatabase возьмет его из names (если оно есть), т.е. DefaultCharset можно не прописывать дополнительно. Кое-какие замечания безотносительно сабжа: 1. Вместо DESCRIBE надо использовать COMMENT ON. 2. Вместо Код: plsql 1. 2. 3. 4. 5. 6. сейчас можно определять блок в секции деклараций: Код: plsql 1. 2. 3. 4. 5. 6. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 24.08.2020, 09:47 
 | 
|||
|---|---|---|---|
  
  | 
|||
Непонятное поведение ibec_CreateDatabase  | 
|||
| 
 #18+ 
  
    
  IBExpert, пробую, не получается, ничего не изменилось. Не вижу обновления. Я качаю обновления с адреса, предназначенного для русской локали. Возможно скачать ibescript где-то еще? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 24.08.2020, 10:35 
 | 
|||
|---|---|---|---|
Непонятное поведение ibec_CreateDatabase  | 
|||
| 
 #18+ 
  
    
  oleg_oleinik Возможно скачать ibescript где-то еще? Качай с тех же адресов. Я IBEScript просто не выкладывал - думал, ты сначала в эксперте проверишь. Ну вот теперь выложил. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 24.08.2020, 12:41 
 | 
|||
|---|---|---|---|
  
  | 
|||
Непонятное поведение ibec_CreateDatabase  | 
|||
| 
 #18+ 
  
    
  IBExpert, скачал обновление, проверил, есть замечание. Если в строке коннекта есть names, но отсутствует DefaultCharset, ibec_CreateDatabase работает, как вы и написали. А если присутствует DefaultCharset, но отсутствует names, то результат прежний. Такое ощущение, что значение DefaultCharset вообще не учитывается. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 24.08.2020, 12:55 
 | 
|||
|---|---|---|---|
  
  | 
|||
Непонятное поведение ibec_CreateDatabase  | 
|||
| 
 #18+ 
  
    
  IBExpert сейчас можно определять блок в секции деклараций: Я вызываю скрипт из bat-файла через IBEScript.exe Если я заменю test1.sql на следующий текст, то получаю ошибку: -------- ERROR ---------- Cannot perform operation -- DB is not open. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 24.08.2020, 14:24 
 | 
|||
|---|---|---|---|
Непонятное поведение ibec_CreateDatabase  | 
|||
| 
 #18+ 
  
    
  oleg_oleinik, Запустил ваш пример, вот так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 24.08.2020, 16:14 
 | 
|||
|---|---|---|---|
Непонятное поведение ibec_CreateDatabase  | 
|||
| 
 #18+ 
  
    
  oleg_oleinik IBExpert, скачал обновление, проверил, есть замечание. Если в строке коннекта есть names, но отсутствует DefaultCharset, ibec_CreateDatabase работает, как вы и написали. А если присутствует DefaultCharset, но отсутствует names, то результат прежний. Такое ощущение, что значение DefaultCharset вообще не учитывается. DefaultCharset - это дефолтовый чарсет базы, который указывается при ее создании. Names - чарсет коннекта. Это разные вещи, и если тебе нужен коннект с чарсетом WIN1251, то names должно присутствовать в строке коннекта. Так что все правильно работает. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 24.08.2020, 16:15 
 | 
|||
|---|---|---|---|
Непонятное поведение ibec_CreateDatabase  | 
|||
| 
 #18+ 
  
    
  oleg_oleinik IBExpert сейчас можно определять блок в секции деклараций: В секции деклараций: между AS и первым BEGIN, там же где и декларации переменных. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
  | 

start [/forum/topic.php?fid=42&mobile=1&tid=1598598]:  | 
    0ms | 
get settings:  | 
    11ms | 
get forum list:  | 
    14ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    37ms | 
get topic data:  | 
    12ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    44ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 14ms | 
| total: | 144ms | 

    | 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.