Ошибка 104 firebird

Have you used Set Term before and after this code?

All commands in Firebird must be terminated with a semi-colon. If you want to create a stored procedure you need to be able to distinguish between the terminating semi-colon from the semi-colons inside the stored procedure.

Something like this:

SET TERM ^ ;

CREATE PROCEDURE SP_NYANSAT(
        FORNAVN VARCHAR(30),
        EFTERNAVN VARCHAR(30),
        ADRESSE VARCHAR(50),
        POSTNUMMER CHAR(4),
        TELEFONNUMMER CHAR(8),
        EMAIL VARCHAR(50))
    AS
    DECLARE VARIABLE ID INTEGER;
    BEGIN
      ID = GEN_ID(GEN_ANSAT_ID,1);
      INSERT INTO MYTABLE (ID, FORNAVN, EFTERNAVN, ADRESSE, POSTNUMMER, TELEFONNUMMER, EMAIL) VALUES (:ID, :FORNAVN, :EFTERNAVN, :ADRESSE, :POSTNUMMER, :TELEFONNUMMER, :EMAIL);
    END
    ^

SET TERM ; ^ 

Please notice how the declaration of the stored procedure is terminated with ^, thus ending the statement. After the declaration you also restore the terminating semi-colon.

On a side note, I would recommend to copy firebird.msg to the location the error you get tells you so you can see what is really happening.

EDIT:

If you wish you can check this link. There you can find a lot of information regarding Firebird + IBExpress, including SET TERM (page 81).

EDIT 2:

Just tried at home with IBExperts + Firebird and I had no problem creating the stored procedure. My guess is you are trying to do one of the following things:

  • You have opened an SQL editor and are trying to compile the code directly. That will not work because IBExperts thinks you are trying to run DSQL sentences. Stored procedures are created with PSQL sentences.

  • You are trying to use the «New procedure» utility (check buttons in the upper right side of the main menu) and pasted the whole code into the editor. That will not work because in that editor you only have to put the body code. Stored procedure name is set in a field on the upper right side of the window you opened. Parameters and variables are introduced by using the «Insert Parameter/Variable» button on the left side above the code editor. The SET TERM sentences are created automatically by IBExperts. You can check the resulting code in the DDL tab.

HTH

Содержание

  1. Error -104 creating Firebird stored procedure
  2. 1 Answer 1
  3. Problems executing SQL-script using Firebird.NET 2.5 (Error Code = -104)
  4. 2 Answers 2
  5. Firebird SQL: error code -104, token unknown
  6. 1 Answer 1
  7. Sql error code 104 firebird что значит
  8. Sql error code 104 firebird что значит

Error -104 creating Firebird stored procedure

I cannot run the following SP

The error I get is the following:

1 Answer 1

Have you used Set Term before and after this code?

All commands in Firebird must be terminated with a semi-colon. If you want to create a stored procedure you need to be able to distinguish between the terminating semi-colon from the semi-colons inside the stored procedure.

Something like this:

Please notice how the declaration of the stored procedure is terminated with ^, thus ending the statement. After the declaration you also restore the terminating semi-colon.

On a side note, I would recommend to copy firebird.msg to the location the error you get tells you so you can see what is really happening.

EDIT:

If you wish you can check this link. There you can find a lot of information regarding Firebird + IBExpress, including SET TERM (page 81).

EDIT 2:

Just tried at home with IBExperts + Firebird and I had no problem creating the stored procedure. My guess is you are trying to do one of the following things:

You have opened an SQL editor and are trying to compile the code directly. That will not work because IBExperts thinks you are trying to run DSQL sentences. Stored procedures are created with PSQL sentences.

You are trying to use the «New procedure» utility (check buttons in the upper right side of the main menu) and pasted the whole code into the editor. That will not work because in that editor you only have to put the body code. Stored procedure name is set in a field on the upper right side of the window you opened. Parameters and variables are introduced by using the «Insert Parameter/Variable» button on the left side above the code editor. The SET TERM sentences are created automatically by IBExperts. You can check the resulting code in the DDL tab.

Источник

Problems executing SQL-script using Firebird.NET 2.5 (Error Code = -104)

Sorry for my English first of all. I have a problem and need help. I have a simple tool made by myself on c#. This tool makes connect to local or remote firebird server (v.2.5). And my tool can create specified .fdb file (database) somewhere on the server.

Also I have a file with SQL statements (create table, triggers and so on). I want to execute this file after database was created. Executing this file will fill structure of user database — not data, only structure.

But then I try to execute my SQL script — firebird server returns a

SQL error code = -104 Token unknown line xxx column xxx.

That’s the line on this CREATE TABLE SQL statement, for example:

If I will leave only one create statement in my file — all will be good. I don’t know how I explained (it’s clear or not)) — another words — why can’t I execute full query with many create statements in one transaction? There is my main method which executes query:

There is a query is my SQL file.

2 Answers 2

As Victor already stated in his final comment, you can use the FBScript class for batch execution.

I was just confronted with the same task. This question pointed me in the right direction but i had to do some further digging.

I this example, the source of the statements is a external script file:

This will work fine, but you may wonder why this whole thing isn’t surrounded by a transaction. Actually there is no support to «bind» FbBatchExecution to a transaction directly.

The first thing i tried was this (will not work)

This will result in an exception stating: «Execute requires the Command object to have a Transaction object when the Connection object assigned to the command is in a pending local transaction. The Transaction property of the Command has not been initialized.»

This means nothing more than that the commands that are executed by FbBatchExecution are not assigned to our local transaction that is surrounding the code block. What helps here is that that FbBatchExecution provides the event CommandExecuting where we can intercept every command and assign our local transaction like this:

Note that i have uncommented the myTransaction.Commit() line. I was a little bit surprised by this behavior, but if you keep that line the transaction will throw an exception stating that it has already been committed. The bool parameter fbe.Execute(true) is named «autoCommit», but changing this to false seems to have no effect.

I would like some feedback if you see any potential issues with assigning the local transaction this way, or if it has any benefits at all or could as well be omitted.

Источник

Firebird SQL: error code -104, token unknown

I have a script, below, in Ostendo (an ERP), which runs on a firebird database. The script is written in Pascal. It returns an error «Firebird SQL: error code -104, token unknown, ’13/04/2018′ at the line TMPQuery2.ExecQuery. I removed the reference text DATEWORKED = AND and it works fine. I have commented out all the other lines I tried in solving it — of which none worked.

Any ideas as to where I am going wrong? I have a feeling it is do to with date format. I have tried dd-mm-yyyy, yyyy-mm-dd (which is how it works from a OBDC through excel), dd/mm/yyyy (which is how it is displayed in ostendo).

1 Answer 1

From where did you get the idea that date literal in Firebird is represented in format like ? The legal formats to cast string data types to the DATE is listed at «Literal Formats» section in the «Conversion of Data Types» chapter.

Basically the yyyy-mm-dd format is right but it must be a simple string ie DATEWORKED = »’ + TSDateWorked + »’ when concatenating strings in pascal.

But instead of building the query as a string one should use parametrized queries. Parameters in SQL string are usually represented by name which has a colon in front of it, ie :DateWorked . So your query would look like

The query component usually also has ParamByName methods so that instead of parameter position you can assign values using the names. I don’t konw the TpFIBQuery component so the property/method names might differ, consult the help of the component.

Источник

Sql error code 104 firebird что значит

Posted via ActualForum NNTP Server 1.5

3 ��� 13, 01:26����[14657321] �������� | ���������� �������� ����������

Re: ��������� ���� (Dynamic SQL Error. SQL error code = -206. Column unknown) [new]
������� ������
Member

�� � ���������� ������ ��� ������� � ������. � �� ����� ������ �� � ���������������� �����, � ������ � ���, ��� ��������� ��� ������������ ������? ������� � ����� ��������� ������� �� �������.

3 ��� 13, 12:05����[14657772] �������� | ���������� �������� ����������
Re: ��������� ���� (Dynamic SQL Error. SQL error code = -206. Column unknown) [new]
������� ������
Member

������: ������
���������: 13

�����
����� ������ ���������?

����� UPDATE ������� �������� �� �����, ����� �������� �������� ����� ����, ���� ��� ���������, �� ������ ����� ��������� �� �� ����(�), �������� ��������(��) ����������� � �� ��������� ����.

UPDATE
STOIM = 1000

� ���������� ������ «Dynamic SQL Error. SQL error code = -206. Column unknown BILET_CENA_SUBSID_NV».

Источник

Sql error code 104 firebird что значит

Junior Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Проинсталлировал FireBird 2.5 Beta.

Я себе пишу вроде мануала, чтобы была в будущем подсказка под рукой:
Прокоментируйте мои действия:
С isql.exe не разобрался,
для создания базы данных и таблицы в ней, использовал IB/FB Development Studio.

Запустить IB/FB Development Studio
Войти в Редактор Баз Данных.
Создать новую базу данных
Указать сервер, указать путь к файлу
Открыть Базу Данных
Правая кнопка мыши — создать объект (новую таблицу)
Правая кнопка мыши — создать поле, если нужно добавить первичный ключ и автоинкремент (создать генератор)

—————————————————————————-
Запустить Delphi2007
Создать новый проект
Из вкладки InterBase добавить на форму компонент TIBDatabase
Из вкладки InterBase добавить на форму компонент TIBTransaction
Из вкладки InterBase добавить на форму компонент TIBDataSet
Из вкладки Data Access добавить на форму компонент TDataSource
Из вкладки Data Controls добавить на форму компонент TDBGrid

—————————————————————————-
Настройка компонента TIBDatabase:
В свойстве компонента DefaultTransaction: имя компонента TIBTransaction
Двойной клик по компоненту (или правая клавиша мыши) — вызвать Database Editor
Remote
localhost
TCP
ввести путь к файлу базы данных
USER: SYSDBA
PASSWORD: masterkey
Свойство компонента Connected =TRUE

—————————————————————————-
Настройка компонента TIBTransaction:
В свойстве компонента DefaultDatabase: имя компонента TIBDatabase
Двойной клик по компоненту (или правая клавиша мыши) — вызвать Transaction Editor
Выбрать опцию Read Committed (для чтения и записи по подтвержением)
Свойство компонента Active =TRUE

—————————————————————————-
Настройка компонента TIBDataSet:
В свойстве компонента Database: имя компонента TIBDatabase
В свойстве компонента Transaction: имя компонента TIBTransaction
Двойной клик по компоненту (или правая клавиша мыши) — вызвать DataSet Editor
Select Table Name: (доступны только при активных предыдущих компонентах)
Select Primary Keys (либо выбрать вручную автоинкрементное поле)
Update Fields: (рекомендуется снять выбор с автоинкрементного поля)
Нажать кнопку «Generate SQL»
Свойства компонента DeleteSQL,InsertSQL,ModifySQL,RefreshSQL автоматически заполнятся.
Выбрать свойство компонента SelectSQL в Object Inspector, вызвать CommandText Editor
Выбрать таблицу, ввести SQL: Select * from (имя выбранной таблицы)

В свойстве компонента GeneratorField: выбрать имя генератора, выбрать поле, применить: On New Record
Свойство компонента Active =TRUE

—————————————————————————-
Настройка компонента TDataSource:
В свойстве компонента DataSet: имя компонента TIBDataSet:
Свойство компонента Enable =TRUE

—————————————————————————-
Настройка компонента TDBGrid:
В свойстве компонента DataSource: имя компонента TDataSource
Двойной клик по компоненту (или правая клавиша мыши) — вызвать Columns Editor
Если предыдущие компоненты активны (база данных подключена), то доступна кнопка «Добавить все поля» (Add All Fields)
В Дельфи, на вкладке Structure — компонент TDBGrid/Columns — выбрать столбец, задать его ширину в пикселях. Тем столбцам, которые не надо показывать — сделать Visible=FALSE (либо удалить из списка в столбцов в Columns Editor)

—————————————————————————————————————————
К сожалению, для информации у меня только книга Архангельского «Программирование в Delphi7» и интернет, поэтому будет много вопросов:

Вообщем, база данных подключилась. В базе данных Character Set = UNICODE_FSS (хочу и на русском и на европейских языках писать)
Если ввожу в текстовые поля английские символы — всё нормально, если ввожу русские — выдает ошибку «malformed string».

Далее, хочу создать программку, в которой можно самому программно создавать таблицы с полями.
Программный код создания таблицы отсюда: http://ibase.ru/devinfo/ibx.htm
create table X
(id int not null,
name varchar(30),
constraint PK_X primary key (id));

Мои вопросы — куда этот код вставлять? И как добавлять новые поля? Что это за ошибка «malformed string» (как от этого избавиться)?

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 19:32 22-06-2009 | Исправлено: Kursist, 19:42 22-06-2009
volser

Advanced Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Kursist

По поводу ошибки «malformed string» почитайте здесь IBase

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 19:46 22-06-2009
X11

Silver Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата:

С isql.exe не разобрался,
для создания базы данных и таблицы в ней, использовал IB/FB Development Studio.

Цитата:

скачай лучше
IBExpert
он на русском и для жителей бывшего СНГ бесплатен

———-
/не мы такие, жизнь такая/

Всего записей: 3241 | Зарегистр. 24-11-2005 | Отправлено: 20:31 22-06-2009
Kursist

Junior Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору volser
FireBird 2.5 Beta
Delphi2007

В компоненте IBDatabase обнаружил UTF8, а вот в
А вот в IB/FB Development Studio в свойствах базы данных только можно выбрать — UNICODE_FSS (UTF8 не обнаружил).

Как же быть?

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 20:37 22-06-2009
X11

Silver Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата:

Настройка компонента TIBDatabase:

Не увидел, с какой кодировкой ты базу создавал и с какой кодировкой подключаешься.

———-
/не мы такие, жизнь такая/

Всего записей: 3241 | Зарегистр. 24-11-2005 | Отправлено: 20:39 22-06-2009
Kursist

Junior Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору X11

Цитата:

скачай лучше IBExpert он на русском и для жителей бывшего СНГ бесплатен

ОПА: (http://www.ibase.ru/unicode_faq.html)
IBExpert не является unicode-приложением

15th June 2009
IBExpert new version with full Unicode support )) ХАРАШО!

Добавлено:
Скачал IBExpert. Запустил. Создаю новую базу. Тест не работает — ругается!
user name и password у меня по дефолту (SYSDBA|masterkey) и чего не так?

Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.

Server: Remote, ServerName: localhost, Protocol: TCP/IP, ServerVersion: FireBird 2.5
Database file: C:myBDBD3.fdb
Database Alias: localhost:C:myBDBD3.fdb

Test:
Attempting to connect to:
localhost:C:myBDBD3.fdb

Connecting. Failed!
————————————
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
I/O error during «CreateFile (open)» operation for file «C:MYBDBD3.FDB».
Error while trying to open file.
The system cannot find the file specified. .

Attempting to connect to services manager. Passed!

Disconnecting from database. Passed!

Я так понимаю, что файла этого нет, а разве он его сам не создает?

—————————————————————-
С этим разобрался. Надо было сначала базу данных создать, а уже потом ее регистрировать.
Поспешишь — людей насмешишь (опять!):
Error Message:
—————————————-
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.

Добавлено:
странно, в одном случае сервер (local), в другом localhost (надо самому вводить)

Не могу создать таблицу в базе данных (эти опции не активны в меню), предположительно это из-за ошибки доступа — не может подсоединиться, только почему я не пойму! Чисто административные проблемы, наверное, не люблю я такие проблемы — совсем это не программирование!

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 20:43 22-06-2009 | Исправлено: Kursist, 21:48 22-06-2009
volser

Advanced Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Kursist

Цитата:

Для полной поддержки unicode нужно использовать Delphi2009.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 22:35 22-06-2009
X11

Silver Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата:

IBExpert не является unicode-приложением

Если быть внимательным, то ты не прав.

Цитата:

Для полной поддержки unicode нужно использовать Delphi2009.

Или компоненты типа TNT или DevExpress, или TMS

Цитата:

Тест не работает — ругается!

Сочувствую. Жди телепатов.

Цитата:

Я так понимаю, что файла этого нет, а разве он его сам не создает?

В эксперте выбери меню Создать новую базу. А ты что, подключаешься к несуществующей?

Добавлено:
У тебя Firebird-то хоть установился? Запущен?
Что даёт
telnet localhost 3051?
У тебя сетевой экран установлен? Антивирус установлен?

———-
/не мы такие, жизнь такая/

Всего записей: 3241 | Зарегистр. 24-11-2005 | Отправлено: 22:50 22-06-2009
volser

Advanced Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору X11

Цитата:

Начиная с Delphi2009.

Цитата:

Пакет для работы с unicode есть, но сами визуальные компоненты компоненты не являются unicode, поскольку построены на vcl.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 23:05 22-06-2009
Kursist

Junior Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору X11

Всё заработало. Перезагрузка ноутбука помогла.
В IBExpress теперь в новой базе данных создал таблицу с полями. Кодировка везде UTF8.

При подключении базы данных в Дельфи, пришлось использовать новый IBDataSet, так как в предыдущем были настройки на предыдущую базу данных, и генератов автоинкремента ключевого поля.
А новый компанент выдает ошибку при попытки его активации:

Цитата:

Dinamic SQL error
SQL code = -104
Token unknown — line 2, column 56
FILE

У меня в таблице нет столько полей/столбцов!

Добавлено:
Объясните, если возможно, почему в IBExpert регистрируешь базу данных, тестируешь — ОК:
——————————-
(Attempting to connect to:
LOCALHOST:C:myBDBD4.fdb
Connecting. Passed!
Server version: WI-T6.3.0.23247 Firebird 2.5 Beta 1
Attempting to connect to services manager. Passed!
Disconnecting from database. Passed!
——————————-

А когда пытаешься подключиться к базе данных, то выдает ошибку:
——————————
Error Message:
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.

(перевод:
Неудачное выполнение, вызванное ошибкой системы, которая устраняет успешное выполнение последующих утверждений.
Ваше имя пользователя и пароль не определены. Попросите, чтобы Ваш администратор базы данных настроил логин Firebird.)
С чего бы это!? Но ведь и user и password — введены регистрационную информацию! И тестовое подключение проходит успешно! Что за чушь!?

Добавлено:
Понял!
Ошибка появляется, когда выставляешь галочку:
Trusted authentication — снимаешь галочку — подключается без ошибки, с галочкой — ошибка! Только почему?!

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 23:52 22-06-2009 | Исправлено: Kursist, 01:33 23-06-2009
X11

Silver Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата:

Читай про Windows авторизацию в Firebird

———-
/не мы такие, жизнь такая/

Всего записей: 3241 | Зарегистр. 24-11-2005 | Отправлено: 09:23 23-06-2009
Kursist

Junior Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Можете подсказать, как в IBExpert в уже созданной таблице удалить поле?
Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 14:46 24-06-2009
volser

Advanced Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Kursist

Открыть таблицу. Перейти на закладку поля. Правой клавишей нажать на нужное поле. Выбрать пункт меню «Удалить поле. «

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 15:03 24-06-2009
Kursist

Junior Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Правый клик мышкой по полю.
В popup-меню:
New Filed
Edit Field
Drop Field
Create Foreign Key..
Reorder Fields
Copy Fields list to clipboard

Нет у меня «Delete Field»!

Если бы это было так очевидно, я бы не спрашивал.

Во вкладке DDL хотел удалить строку создания поля, в команде создание таблицы, но не разрешает..

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 15:39 24-06-2009 | Исправлено: Kursist, 15:47 24-06-2009
data man

Advanced Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Kursist
1. Если не открыт Эксплорер БД — нажать F11.
2. В нем (обычно он слева), в списке таблиц, найти нужную.
3. В списке полей, правый клик, в меню «Удалить поле» или нажать Ctrl-Del.

Если поле только одно, то удалить его таким образом нельзя.

P.S.
А какая версия IBExperta ?

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 15:53 24-06-2009
Kursist

Junior Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору data man

IB Expert — The Most Expert for InterBase, Firebird and Yaffil
Copyright (C) 2000-2009 IBExpert KG
All rights reserved.

Полей несколько.
Команды «удалить поле» — НЕТ!

Цитата:

В popup-меню:
New Filed
Edit Field
Drop Field
Create Foreign Key..
Reorder Fields
Copy Fields list to clipboard

+ не реагирует.

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 16:06 24-06-2009
volser

Advanced Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Kursist

Цитата:

Команды «удалить поле» — НЕТ!

А это что?
Цитата:

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 16:07 24-06-2009 | Исправлено: volser, 16:07 24-06-2009
Kursist

Junior Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата:

А! Это и есть УДАЛИТЬ! Бл. (Извиняюсь!)

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 16:08 24-06-2009
data man

Advanced Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Kursist
Может стоит переключить интерфейс IBExperta’а на русский ?
P.S. Здесь cсылка лежит более новый перевод, чем в инсталле.
Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 16:25 24-06-2009 | Исправлено: data man, 16:38 24-06-2009
Kursist

Junior Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору data man
в настройках язык интерфейса только English (Default)

Ещё вопрос:
У меня по закрытию формы проиходит отсоединение от базы данных:
IBDatabase1.Close;
А почему в Дельфи, по возвращению в среду IBDatabase1.Connected=TRUE
, это свойство не должно переходить в FALSE?

Добавлено:
IBExpert
Опять натолкнулся на проблему:
Пытаюсь связать 2 таблицы (ORDERS и CLIENTS),

Вот такой скрипт получается:

alter table ORDERS
add constraint FK_ORDERS_1
foreign key (CLIENTS_NAME)
references CLIENTS(NAME)

This operation is not defined for system tables.
unsuccessful metadata update.
could not find UNIQUE or PRIMARY KEY constraint in table CLIENTS with specified columns.

Источник

Adblock
detector

Pavel181818

0 / 0 / 0

Регистрация: 15.07.2009

Сообщений: 6

1

21.07.2009, 11:26. Показов 14666. Ответов 3

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Мне нужно создать таблицу в InterBase. Пишу следующий запрос:

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE TABL1 (
Kod INTEGER IS NOT NULL,
Object CHAR(100),
№_dogovora_data CHAR(70),
Zakazchik CHAR(50),
Sroki CHAR(40),
Istochnik_phinansirovania CHAR(50),
Srtoim_v_bazovih_cenah NUMERIC(50,0),
Stoim_v_tekuchih_cenah NUMERIC(50,0),
Stoim_indeks_rosta_cen NUMERIC(50,0),
PRIMARY KEY (Kod)
);
COMMIT;

Выдаёт ошибку:
Dynamic SQL Error
SQL error code = -104
Unexpected end of command…
Помогите найти ошибку.
И ещё такой вопрос: можно ли чтобы заголовки столбцов были написаны русскими буквами?



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

21.07.2009, 11:26

3

АНК

125 / 116 / 17

Регистрация: 27.02.2007

Сообщений: 291

02.09.2009, 10:20

2

Я посмотрел в IBExpert’е, что за ошибка возникла. Получил вот это:

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown — line 2, char 11.
IS.

тут по-моему все ясно.

Корилические символы в заголовках применять нельзя
У типа NUMERIC длина больше 18 не бывает
Зарезервированные слова (типа «OBJECT») применять нельзя
И в результате:

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE TABL1 (
Kod INTEGER NOT NULL,
OBJ_ECT CHAR(100),
NUM_dogovora_data CHAR(70),
Zakazchik CHAR(50),
Sroki CHAR(40),
Istochnik_phinansirovania CHAR(50),
Srtoim_v_bazovih_cenah NUMERIC(18,0),
Stoim_v_tekuchih_cenah NUMERIC(18,0),
Stoim_indeks_rosta_cen NUMERIC(18,0),
PRIMARY KEY (Kod)
)



0



0 / 0 / 0

Регистрация: 15.07.2009

Сообщений: 6

02.09.2009, 10:25

 [ТС]

3

Я уже давно исправил эти ошибки, но всё равно спасибо



0



0 / 0 / 0

Регистрация: 08.04.2015

Сообщений: 13

24.11.2009, 08:46

4

Цитата
Сообщение от Pavel181818
Посмотреть сообщение

Я уже давно исправил эти ошибки, но всё равно спасибо

И в чем была ошибка? В этом «OBJ_ECT» что ли?Подскажите пожалуйста.



0



Firebird log file (firebid.log) can contain a lot of various messages, here you can find the list of most frequent of them, with the explanation of the error.

INET/inet_error: read errno = 10054

Short: Software caused connection abort.

The disconnect of the client from the server. If error text contains with (Client), it means that the client application lost its connection to the server and wrote down this fact to the log.
If error text contains (Server), it means that server lost the connection to the client and reported it to the firebird.log.
The usual reason of 10054 error is an unstable connection, for example, weak Wi-Fi.
Also, it is possible to see this error if a client application doesn’t explicitly close the database connection, i.e., there is no explicit command like «MyDB.Active:=false» on closing the software.

INET/inet_error: read errno = 104

Short: Software caused connection abort.
The same as 10054, but on Linux.

WNET/wnet_error: ReadFile end-of-file errno = 109

In short: Software caused connection abort.

The same as 10054, but this error occurs when client application uses the WNET connection path to the Firebird server instance on Windows, something like this:
\serverpathdatabase.fdb
This is not recommended, better use TCP/IP connections for network connections (in the format server:pathdatabase.fdb or, on Firebird 3, inet://servername:pathdatabase.fdb), and XNET for local connections (local path on 2.5 and xnet://pathdatabase.fdb).
Consider to disable WNET connections, look here how to disable connection protocols for Firebird on Windows.

INET/inet_error: send errno = 10053 (on Windows)
or INET/inet_error: send errno = 103 (on Linux)

Also means broken connection, but WinSock error is 10053. 

INET/inet_error: connect errno = 10060 (Windows)
or INET/inet_error: connect errno = 10061 (Windows)

In short: 10061 — Connection refused, 10060 — Connection timed out

In general, this error means that it is not possible to establish a connection between the server and client application.

In case of this error with (Client), It means that the client application tried to connect to Firebird through network connection string, but failed, either Firebird server is not running, or access closed by a firewall.

More details about common Winsock errors is here.

Commented by: Franz J Fortuny (frafor49)

Well, the problem is still there, somewhere. As you can see here, the server STOPPED responding to connections requests. I didn’t notice for 5 hours that no connections were possible. This is the error log file. The server NEVER EVER responded to the localhost or to the external connections. The above problem was published in 2007. This 2014, 7 years later. The server is version 2.5:

ISQL Version: LI-V2.5.1.26351 Firebird 2.5
Server version:
Firebird/linux Intel (access method), version «LI-V2.5.1.26351 Firebird 2.5»
Firebird/linux Intel (remote server), version «LI-V2.5.1.26351 Firebird 2.5/tcp (D19020)/P12»
Firebird/linux Intel (remote interface), version «LI-V2.5.1.26351 Firebird 2.5/tcp (D19020)/P12»
on disk structure version 11.2

The same server machine was also being used to host a mysql database which continued to work without flaws during the same hours that FirebirdSQL had the log reported errno(s) 104 (cliente) and 98 (Server). All connections were via Localhost, just like they were made to the mySQL hosted in the same machine.

If this is NOT a FirebirdSQL Bug, then it has to do with some network failure than only affects Firebird (and not the other servers connecting via Localhost). There must be a way to avoid this; is there?

D19020 (Client) Sun Apr 13 12:56:53 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 12:56:56 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 12:57:54 2014
INET/inet_error: read errno = 104

… (like this for, about 1000 errors)

D19020 (Client) Sun Apr 13 13:02:41 2014
INET/inet_error: read errno = 104
D19020 (Client) Sun Apr 13 17:54:31 2014
fbguard: guardian starting /usr/sbin/fbserver
D19020 (Client) Sun Apr 13 17:54:33 2014
fbguard: guardian starting /usr/sbin/fbserver

Here the error changes to 98 and is a Server error:

D19020 (Server) Sun Apr 13 17:55:21 2014
INET/inet_error: bind errno = 98
D19020 (Client) Sun Apr 13 17:55:21 2014
fbguard: /usr/sbin/fbserver terminated due to startup error (2)

D19020 (Client) Sun Apr 13 17:55:21 2014
fbguard: /usr/sbin/fbserver terminated due to startup error (2)

D19020 (Server) Sun Apr 13 17:55:23 2014
INET/inet_error: bind errno = 98

D19020 (Client) Sun Apr 13 17:55:23 2014
fbguard: /usr/sbin/fbserver terminated due to startup error (2)

D19020 (Client) Sun Apr 13 17:55:23 2014
fbguard: /usr/sbin/fbserver terminated due to startup error (2)

D19020 (Client) Sun Apr 13 17:55:37 2014
fbguard: guardian starting /usr/sbin/fbserver

D19020 (Server) Sun Apr 13 17:56:27 2014
INET/inet_error: bind errno = 98

D19020 (Client) Sun Apr 13 17:56:27 2014
fbguard: /usr/sbin/fbserver terminated due to startup error (2)

D19020 (Client) Sun Apr 13 17:56:27 2014
fbguard: /usr/sbin/fbserver terminated due to startup error (2)

D19020 (Client) Sun Apr 13 18:01:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:02:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:03:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:03:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:04:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:04:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:05:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:05:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:06:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:06:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:07:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:07:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:08:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:08:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:09:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:09:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:10:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:10:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:11:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:11:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:12:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:12:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:13:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:13:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:14:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:14:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:15:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:15:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:16:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:16:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:17:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:17:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:18:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:18:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:19:41 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:19:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:20:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:20:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:21:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:21:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:22:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:22:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:23:41 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:23:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:24:42 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:24:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:25:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:25:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:26:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:26:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:27:38 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:27:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:28:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:28:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:29:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:29:47 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:30:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:30:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:31:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:31:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:32:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:32:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:33:41 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:33:52 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:34:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:34:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:35:42 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:35:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:36:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:36:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:37:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:37:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:38:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:38:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:39:42 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:39:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:40:41 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:40:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:41:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:41:52 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:42:43 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:42:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:43:43 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:43:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:44:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:44:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:45:41 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:45:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:46:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:46:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:47:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:47:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:48:41 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:48:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:49:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:49:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:50:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:50:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:51:41 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:51:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:52:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:52:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:53:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:53:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:54:43 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:54:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:55:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:55:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:56:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:56:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:57:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:57:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:58:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:58:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:59:41 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 18:59:49 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 19:00:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 19:00:50 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 19:01:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 19:02:40 2014
INET/inet_error: read errno = 104

D19020 (Client) Sun Apr 13 19:31:07 2014
fbguard: guardian starting /usr/sbin/fbserver

D19020 (Server) Sun Apr 13 19:31:57 2014
INET/inet_error: bind errno = 98

D19020 (Client) Sun Apr 13 19:31:57 2014
fbguard: /usr/sbin/fbserver terminated due to startup error (2)

D19020 (Client) Sun Apr 13 19:31:57 2014
fbguard: /usr/sbin/fbserver terminated due to startup error (2)

Then it started, just like that, after one more intent:

D19020 (Client) Sun Apr 13 20:04:57 2014
/usr/sbin/fbguard: guardian starting /usr/sbin/fbserver

Понравилась статья? Поделить с друзьями:
  • Ошибка 0xc0000011b при установке принтера
  • Ошибка 0xc0000225 при загрузке windows что делать
  • Ошибка 1021 fanuc
  • Ошибка 0xc0000011b при подключении к принтеру
  • Ошибка 0xc0000225 при загрузке windows 10 как исправить