Форум программистов, компьютерный форум, киберфорум
Go (Golang)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
176 / 2 / 1
Регистрация: 31.10.2016
Сообщений: 160

Создание файла базы данных Firebird

22.01.2024, 14:25. Показов 2416. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Использую firebirdsql, но похоже с помощью данной библиотеки невозможно создавать саму базу. По крайней мере
Go
1
2
3
4
5
6
7
8
9
10
db, err := sql.Open("firebirdsql", "sysdba:masterkey@localhost:3050/D:\\test.fdb")
if err != nil {
  fmt.Println("Opening error", err)
  return
}
 
if _, err := db.Exec("create table mytable user 'sysdba' password 'masterkey' page_size 8192  default character set win1251"); err != nil {
  fmt.Println("DB failure", err)
  return
}
всегда схлопывается на "DB failure". Может я что-то делаю не так?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.01.2024, 14:25
Ответы с готовыми решениями:

Создание файла (базы данных) на примере готового листинга. SWI-Prolog
В этом коде подключается файл "db.txt". Как правильно заполнить этот файл, чтоб программа функционировала? Какие в нужно заполнить поля и...

Создание Базы данных Библиотека в Firebird
Здравствуйте! Прошу вашей искренней помощи, вот у меня есть бд Access в связке с delphi. Теперь мне надо такую же бд сделать на firebird...

Загрузка данных из базы firebird и формирование XML файла
Задача считать данные из базы с расширением gdb после чего загрузить их в XML файл. Помогите пожалуйста как это сделать??

16
364 / 328 / 83
Регистрация: 17.04.2022
Сообщений: 1,080
Записей в блоге: 8
22.01.2024, 14:50
вы бы текст ошибки что-ли приложили. а то "схлопывается" как-то слишком малоинформативно
0
Модератор
 Аватар для Curry
5158 / 3482 / 536
Регистрация: 01.06.2013
Сообщений: 7,543
Записей в блоге: 9
22.01.2024, 15:59
Вообще то базу в firebird создают командами SQL вроде
SQL
1
2
3
4
SET SQL DIALECT 1;
CREATE DATABASE 'D:\test.fdb'
    USER 'wizard' PASSWORD 'player'
    PAGE_SIZE = 4096 DEFAULT CHARACTER SET WIN1251;
И потом к ней можно подключиться через новый Open.
Но вот что нужно указать вторым аргументом в начальном sql.Open я не знаю, может просто "sysdba:masterkey@localhost:3050" ?
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,664
Записей в блоге: 65
22.01.2024, 18:08
jkadaba, видимо как и сказал Curry, придется инициировать два подключения.

Go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import (
    "database/sql"
    _ "github.com/nakagami/firebirdsql"
)
 
func main() {
    // Соединение с сервером Firebird
    conn, err := sql.Open("firebirdsql", "sysdba:masterkey@localhost")
    if err != nil {
        log.Fatal(err)
    }
    defer conn.Close()
 
    // SQL-команда для создания новой базы данных
    _, err = conn.Exec("CREATE DATABASE '<путь_к_новой_базе_данных.fdb>'")
    if err != nil {
        log.Fatal(err)
    }
}
ну а второе как вы делали.
0
176 / 2 / 1
Регистрация: 31.10.2016
Сообщений: 160
22.01.2024, 18:21  [ТС]
Curry через sql я знаю как создавать. и про диалекты в доках почитал. но интересует именно силами гошки. на других языках вроде питошки все норм, fb поставил, вызвал create_database и дальше создавай таблицы. а вот гоша для меня в этом плане очень странен.
alhaos Open вроде как норм, а вот Exec уже в фаталити валится. про два подключения нифига не понял.
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,664
Записей в блоге: 65
23.01.2024, 05:46
jkadaba, Попробовал вчера, через драйвер firebirdsql у меня не получилось подключиться к экземпляру не указывая базу.

Могу предложить запускать утилиту isql с шаблоном создания базы Saving and Running the Script
0
176 / 2 / 1
Регистрация: 31.10.2016
Сообщений: 160
23.01.2024, 06:07  [ТС]
alhaos пасиб но через isql как-то не очень. сторонний процесс как-то даже совсем не очень. вот sqlite бд гошка создать может, а firebird нет получается.
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,664
Записей в блоге: 65
23.01.2024, 06:29
jkadaba, я бы не делал столь далеко идущих выводов исходя только из того, что у меня не получилось. SQLite ведет себя не особо типично для субд, она создает файл базы данных при обращении даже если его там не было.

Добавлено через 1 минуту
и подскажите пожалуйста какой сценарий не позволяет вам инициировать базу данных предварительно?
0
Модератор
 Аватар для Curry
5158 / 3482 / 536
Регистрация: 01.06.2013
Сообщений: 7,543
Записей в блоге: 9
23.01.2024, 13:31
Мне кажется, проблема надуманная. Я, в аналогичных ситуациях, создаю пустую базу-заготовку с созданными таблицами и т.п. и включаю её в дистрибутив приложения. Когда нужно создать новую базу, то в приложении копирую файл базы-заготовки (благо у файрбёрда вся база в одном файле) в нужное место и открываю как обычно.
0
364 / 328 / 83
Регистрация: 17.04.2022
Сообщений: 1,080
Записей в блоге: 8
23.01.2024, 19:56
разглядывание исходников https://github.com/nakagami/fi... /driver.go позволяет сделать предположение о том, что для достижения требуемого эффекта вы должны заменить "firebirdsql" на "firebirdsql_createdb"
1
176 / 2 / 1
Регистрация: 31.10.2016
Сообщений: 160
25.01.2024, 13:05  [ТС]
sqltd1 бд создается, но с ошибкой
Code
1
2
3
Dynamic SQL Error
SQL error code = -530
Cannot prepare a CREATE DATABASE/SCHEMA statement
Go
1
2
3
4
5
6
7
8
9
10
db, err := sql.Open("firebirdsql_createdb", "sysdba:masterkey@localhost/F:\\test.fdb")
if err != nil {
  fmt.Println("Opening error", err)
  return
}
 
if _, err := db.Exec("create databse 'F:\\test.fdb' user 'sysdba' password 'masterkey' page_size 8192  default character set win1251"); err != nil {
  fmt.Println(err)
  return
}
0
364 / 328 / 83
Регистрация: 17.04.2022
Сообщений: 1,080
Записей в блоге: 8
25.01.2024, 14:44
Лучший ответ Сообщение было отмечено jkadaba как решение

Решение

я подозреваю, что "create databse ..." это команда консольного клиента
посмотрите в https://github.com/nakagami/fi... er_test.go примеры использования "firebirdsql_createdb"

Добавлено через 1 минуту
хех - резануло взгляд - "create databse" - тут явная ошибка
1
Модератор
 Аватар для Curry
5158 / 3482 / 536
Регистрация: 01.06.2013
Сообщений: 7,543
Записей в блоге: 9
25.01.2024, 14:53
Цитата Сообщение от sqltd1 Посмотреть сообщение
я подозреваю, что "create databse ..." это команда консольного клиента
Нет, CREATE DATABASE, это команда SQL, при чём (почти?) любого диалекта SQL.
Вам бы, с вашем ником, и не знать?
0
364 / 328 / 83
Регистрация: 17.04.2022
Сообщений: 1,080
Записей в блоге: 8
25.01.2024, 15:14
Цитата Сообщение от Curry Посмотреть сообщение
Нет, CREATE DATABASE, это команда SQL, при чём (почти?) любого диалекта SQL.
Ну да. Почти. Но у ТС - не получается, а в тестах https://github.com/nakagami/fi... er_test.go - вариант с "firebirdsql_createdb" сразу создает БД, поэтому чем черт не шутит

Добавлено через 5 минут
все нормально в firebase - см. 5.1.1 https://firebirdsql.org/file/d... erence.pdf
0
Модератор
 Аватар для Curry
5158 / 3482 / 536
Регистрация: 01.06.2013
Сообщений: 7,543
Записей в блоге: 9
25.01.2024, 15:16
Цитата Сообщение от sqltd1 Посмотреть сообщение
вариант с "firebirdsql_createdb" сразу создает БД
Если он сразу создаёт БД, то выполнять CREATE DATABASE, по идее, не нужно. Однако как при этом задавать множество параметров указываемых обычно при создании БД?
0
364 / 328 / 83
Регистрация: 17.04.2022
Сообщений: 1,080
Записей в блоге: 8
25.01.2024, 15:27
Цитата Сообщение от Curry Посмотреть сообщение
Однако как при этом задавать множество параметров указываемых обычно при создании БД?
Наверно стоит заглянуть в исходники драйвера и посмотреть как это делает автор.
Я пытался деликатно намекнуть на это, давая нужные ссылки.
PS. Последний раз я имел дело с Firebird когда он назывался Interbase. Это тоже деликатный намек на то, что я не использую указанный драйвер, но если что-то меня заинтересовало, то просто смотрю исходники. Зачастую проще поглядеть...
1
176 / 2 / 1
Регистрация: 31.10.2016
Сообщений: 160
26.01.2024, 06:15  [ТС]
sqltd1 спасибо все завелось и отлично работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.01.2024, 06:15
Помогаю со студенческими работами здесь

Создание базы данных из .bat файла
Здравствуйте! Появилась задача создания базы данных в PostgreSQL через bat-файл. Толком ничего не нашла в интернете, возможно, плохо...

Создание базы данных из текстового файла
Пытаюсь из текстового файла заполнить бд командой load data infile. Ловлю ошибку Error Code: 1290. The MySQL server is running with the...

Создание базы данных посредством файла
Здравствуйте, есть задание создать базу данных песен, с их данными( альбом, год релиза итд). Проблема в том, что SQL не подойдет (не по...

Создание базы данных на основе текстового файла.
Привет всем! Короче так. Что мне нужно, это база данных на основе текстового файла. Нашел как это сотворить, сотворил, все вроде пашет....

Чтение данных из файла и создание базы sqlite
struct bd { int avto; char marka ; int probeg; int god; char dvigatel ; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru