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

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

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

Author24 — интернет-сервис помощи студентам
Использую 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 и формирование XML файла
Задача считать данные из базы с расширением gdb после чего загрузить их в XML файл. Помогите...

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

16
294 / 255 / 76
Регистрация: 17.04.2022
Сообщений: 812
Записей в блоге: 8
22.01.2024, 14:50 2
вы бы текст ошибки что-ли приложили. а то "схлопывается" как-то слишком малоинформативно
0
Модератор
5106 / 3334 / 535
Регистрация: 01.06.2013
Сообщений: 7,009
Записей в блоге: 9
22.01.2024, 15:59 3
Вообще то базу в 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
1470 / 524 / 145
Регистрация: 20.02.2019
Сообщений: 2,602
Записей в блоге: 42
22.01.2024, 18:08 4
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  [ТС] 5
Curry через sql я знаю как создавать. и про диалекты в доках почитал. но интересует именно силами гошки. на других языках вроде питошки все норм, fb поставил, вызвал create_database и дальше создавай таблицы. а вот гоша для меня в этом плане очень странен.
alhaos Open вроде как норм, а вот Exec уже в фаталити валится. про два подключения нифига не понял.
0
1470 / 524 / 145
Регистрация: 20.02.2019
Сообщений: 2,602
Записей в блоге: 42
23.01.2024, 05:46 6
jkadaba, Попробовал вчера, через драйвер firebirdsql у меня не получилось подключиться к экземпляру не указывая базу.

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

Добавлено через 1 минуту
и подскажите пожалуйста какой сценарий не позволяет вам инициировать базу данных предварительно?
0
Модератор
5106 / 3334 / 535
Регистрация: 01.06.2013
Сообщений: 7,009
Записей в блоге: 9
23.01.2024, 13:31 9
Мне кажется, проблема надуманная. Я, в аналогичных ситуациях, создаю пустую базу-заготовку с созданными таблицами и т.п. и включаю её в дистрибутив приложения. Когда нужно создать новую базу, то в приложении копирую файл базы-заготовки (благо у файрбёрда вся база в одном файле) в нужное место и открываю как обычно.
0
294 / 255 / 76
Регистрация: 17.04.2022
Сообщений: 812
Записей в блоге: 8
23.01.2024, 19:56 10
разглядывание исходников https://github.com/nakagami/fi... /driver.go позволяет сделать предположение о том, что для достижения требуемого эффекта вы должны заменить "firebirdsql" на "firebirdsql_createdb"
1
176 / 2 / 1
Регистрация: 31.10.2016
Сообщений: 160
25.01.2024, 13:05  [ТС] 11
sqltd1 бд создается, но с ошибкой
Код
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
294 / 255 / 76
Регистрация: 17.04.2022
Сообщений: 812
Записей в блоге: 8
25.01.2024, 14:44 12
Лучший ответ Сообщение было отмечено jkadaba как решение

Решение

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

Добавлено через 1 минуту
хех - резануло взгляд - "create databse" - тут явная ошибка
1
Модератор
5106 / 3334 / 535
Регистрация: 01.06.2013
Сообщений: 7,009
Записей в блоге: 9
25.01.2024, 14:53 13
Цитата Сообщение от sqltd1 Посмотреть сообщение
я подозреваю, что "create databse ..." это команда консольного клиента
Нет, CREATE DATABASE, это команда SQL, при чём (почти?) любого диалекта SQL.
Вам бы, с вашем ником, и не знать?
0
294 / 255 / 76
Регистрация: 17.04.2022
Сообщений: 812
Записей в блоге: 8
25.01.2024, 15:14 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
Модератор
5106 / 3334 / 535
Регистрация: 01.06.2013
Сообщений: 7,009
Записей в блоге: 9
25.01.2024, 15:16 15
Цитата Сообщение от sqltd1 Посмотреть сообщение
вариант с "firebirdsql_createdb" сразу создает БД
Если он сразу создаёт БД, то выполнять CREATE DATABASE, по идее, не нужно. Однако как при этом задавать множество параметров указываемых обычно при создании БД?
0
294 / 255 / 76
Регистрация: 17.04.2022
Сообщений: 812
Записей в блоге: 8
25.01.2024, 15:27 16
Цитата Сообщение от Curry Посмотреть сообщение
Однако как при этом задавать множество параметров указываемых обычно при создании БД?
Наверно стоит заглянуть в исходники драйвера и посмотреть как это делает автор.
Я пытался деликатно намекнуть на это, давая нужные ссылки.
PS. Последний раз я имел дело с Firebird когда он назывался Interbase. Это тоже деликатный намек на то, что я не использую указанный драйвер, но если что-то меня заинтересовало, то просто смотрю исходники. Зачастую проще поглядеть...
1
176 / 2 / 1
Регистрация: 31.10.2016
Сообщений: 160
26.01.2024, 06:15  [ТС] 17
sqltd1 спасибо все завелось и отлично работает.
0
26.01.2024, 06:15
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.01.2024, 06:15
Помогаю со студенческими работами здесь

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

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

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

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

Нужна программа выборки данных с базы данных FireBird в клиент БД MySQL
Здравствуйте, нужна программа выборки данных или коды на Delphi с базы данных FireBird в клиент БД...

Разблокировка файла базы firebird в Qt
Есть база firebird. Подключаю ее к программе через QSqlDatabase. bool db_connect=false;...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru