Dynamic sql error code 303

Arithmetic exception, numeric overflow, or string truncation This error message can be caused by various things, and it’s isn’t always easy to determine the cause. The best method is to remove parts of the query one-by-one until you discover the problematic one. This error message is actually the same for different kind of errors. Here […]

Содержание

  1. Arithmetic exception, numeric overflow, or string truncation
  2. org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544569. Dynamic SQL Error SQL error code = -303 arithmetic exception, numeric overflow, or string truncation string right truncation — problem with like SQL [JDBC355] #397
  3. Comments
  4. Sql error code 303 firebird

Arithmetic exception, numeric overflow, or string truncation

This error message can be caused by various things, and it’s isn’t always easy to determine the cause. The best method is to remove parts of the query one-by-one until you discover the problematic one. This error message is actually the same for different kind of errors. Here are the causes and explanations:

1. Division by zero

Take a look and see if you have any divisions in your equasions. Is it possible that some of the values can be zero? If this is the case, you can use the CASE statement to replace the zero with something else. Or you can use DZERO function from rFunc UDF library. Examples:

select 1/0 from rdb$database;
select dzero(1, 0, 0) from rdb$database;

Please note that DZERO would return zero even for NULL input. Depending on your requirements, it might be better to use CASE (which is available since Firebird 1.5). Here’s an example showing how to use CASE:

CREATE TABLE test ( x integer );
COMMIT;
INSERT INTO TEST (X) VALUES (NULL);
INSERT INTO TEST (X) VALUES (1);
INSERT INTO TEST (X) VALUES (0);

SELECT x, CASE when x = 0 then 0 else 10/x END
FROM test;

2. Arithmetic overflow

If you use fixed precision datatypes (smallint, integer, bigint, decimal and numeric), it is possible that the result of calculation doesn’t fit the datatype. Try casting the values in complex expressions as double precision and see whether the error goes away. If it works and you don’t care about being too precise, you can leave it at that. Otherwise you need to check every operation and calculate the result.

Here’s an example: if you multiply 9.12 with 8.11 (both numeric(18,2)) you would get 73.9632. If Firebird would store that into numeric(18,2) datatype, we would lose 0.0032. Doesn’t look much, but when you have complex calculations, you can easily loose thousands (dollars or euros). Therefore, the result is stored in numeric(18,4).

Problems are rarely seen with such low precision as 2. Let’s use some bigger precision. For example, numeric(18,6) times numeric(18,6) yields numeric(18,12) result, meaning that maximal value it can store is 9223372.036854775807. If (for example) you wish to keep only 6 digits of precision, you could use something like:

cast(value1 as numeric(18,3)) * cast(value2 as numeric(18,3))

which would yield numeric(18,6) result, but it is quite possible that you would get more accurate result by casting to double:

cast(cast(value1 as double precision) * cast(value2 as double precision) as numeric(18,6))

Also, if you have mixed multiplications and divisions it helps to change the order of operations, so that the overflow doesn’t happen.

3. String truncation

It happens when the concatenated string doesn’t fit the underlying CHAR or VARCHAR datatype size. If the result goes into a table column, perhaps it’s a valid error. Or maybe you really need to increase the column size. Similar goes for intermediary values stored in stored procedure or trigger variables.

4. Character transliteration failed

This happens when you have data in database stored in one character set, but the transliteration to required character set fails. There are various points where character set transliteration occurs. There is an automatic one:

Every piece of data you retrieve from database (via SELECT or otherwise) is transliterated from character set of database table’s column to connection character set. If character sets are too different, there will be two traslations: first from column charset to Unicode and then from Unicode to the connection charset.

Also, you can request transliteration manually by CASTing the column to another charset, example:

CAST(column_name AS varchar(100) character set WIN1251).

The reason that transliteration can fail is that simply some characters don’t exist in certain character sets. For example, WIN1252 doesn’t contain any Cyrillic characters, so if you use connection charset WIN1252 and try to SELECT from a column with Cyrillic characters, you may get such error.

In modern internationalized computer world, it is best to use Unicode or UTF8 in your applications and UTF8 connection character — if your connectivity library has provisions for it. And make sure you use at least Firebird 2.0, which has excellent UTF8 support.

5. Wrong order of parameters when using DotNetFirebird

The order in which Parameters are added to a FbCommand when using DotNetFirebird might cause the -303 exception with the hint «Arithmetic exception, numeric overflow, or string truncation». The order of the parameters has to fit the order of the params in the stored procedure — otherwise the exception will be thrown. Example (.NET, C#, DotNetFirebird (using FirebirdSql.Data.FirebirdClient;)):

FbCommand CMD = new FbCommand(«TBLTEXT_ADDTEXT», cnn);
CMD.Parameters.Add(«TEXT1», FbDbType.VarChar, 600).Value = strText1;
CMD.Parameters.Add(«TEXT2», FbDbType.VarChar, 600).Value = strText2;
CMD.CommandType = CommandType.StoredProcedure;
CMD.ExecuteNonQuery();

If the order of the parameters inside the procedure «TBLTEXT_ADDTEXT» differ from the order in which you�re adding parameters to the FbCommand-Object, you�ll receive the -303 error.

Note: Section 5 of this FAQ was contributed by Andre Bonin.

Источник

org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544569. Dynamic SQL Error SQL error code = -303 arithmetic exception, numeric overflow, or string truncation string right truncation — problem with like SQL [JDBC355] #397

Submitted by: Łukasz Bączek (baczek00)

Sallis has written a small test in Java showing the problem:

Below you have the entire structure of the table:
__._,_.___

SET SQL DIALECT 3;

CREATE DATABASE ‘:C:TEST.FDB’
USER ‘SYSDBA’ PASSWORD ‘masterkey’
PAGE_SIZE 16384
DEFAULT CHARACTER SET UTF8 COLLATION UNICODE_CI_AI;

CREATE DOMAIN CHECKBOX AS
SMALLINT
DEFAULT 0
CHECK (value is null or value in (0, 1));

CREATE GENERATOR GEN_OSOBY_ID;
SET GENERATOR GEN_OSOBY_ID TO 138;

CREATE TABLE OSOBY (
ID_OSOBY BIGINT NOT NULL,
IMIE VARCHAR(40) CHARACTER SET UTF8 NOT NULL COLLATE UNICODE_CI_AI,
NAZWISKO VARCHAR(120) CHARACTER SET UTF8 NOT NULL COLLATE UNICODE_CI_AI,
ADRES VARCHAR(150) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI,
KOD VARCHAR(6) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI,
MIASTO VARCHAR(30) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI,
TELEFON VARCHAR(12) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI,
EMAIL VARCHAR(60) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI,
DYSTRYBUTOR CHECKBOX,
EKSPERT CHECKBOX,
PRZEDSTAWICIEL CHECKBOX,
WLASCICIEL CHECKBOX,
UWAGI VARCHAR(500) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI
);

INSERT INTO OSOBY (ID_OSOBY, IMIE, NAZWISKO, ADRES, KOD, MIASTO, TELEFON, EMAIL, DYSTRYBUTOR, EKSPERT, PRZEDSTAWICIEL, WLASCICIEL, UWAGI) VALUES (137, ‘TESTA’, ‘TESTb’, ‘xxx’, ’00-000′, ‘TestC’, ‘1234567’, ‘DEMO@DEMO.DEMO’, 0, 0, 0, 0, NULL);
INSERT INTO OSOBY (ID_OSOBY, IMIE, NAZWISKO, ADRES, KOD, MIASTO, TELEFON, EMAIL, DYSTRYBUTOR, EKSPERT, PRZEDSTAWICIEL, WLASCICIEL, UWAGI) VALUES (138, ‘Jan’, ‘Kowalski’, ‘Aniołów 5′, ’83-100’, ‘Warszawa’, ‘0123456’, ‘jan.kowalski@demo.demo’, 0, 0, 0, 0, NULL);

ALTER TABLE OSOBY ADD CONSTRAINT PK_OSOBY PRIMARY KEY (ID_OSOBY);

/* Trigger: OSOBY_BI */
CREATE TRIGGER OSOBY_BI FOR OSOBY
ACTIVE BEFORE INSERT POSITION 0
as
begin
if (new.id_osoby is null) then
new.id_osoby = gen_id(gen_osoby_id,1);
end
^

And so reads the data:

*/
public static void main(String[] args) <
try <
FBWrappingDataSource pool = new FBWrappingDataSource();
pool.setMaxPoolSize(5);
pool.setMinPoolSize(2);
pool.setMaxStatements(2);
pool.setMaxIdleTime(30 * 60 * 60);
pool.setDatabase(» «);
pool.setUserName(«SYSDBA»);
pool.setPassword(«masterkey»);
pool.setCharSet(«UTF8»);
pool.setEncoding(«UTF8»);
Connection connection = pool.getConnection();
try <
ResultSet result = null;
StringBuilder SBSQL = new StringBuilder();
SBSQL.append(«SELECT * FROM (SELECT id_osoby, imie, nazwisko, adres, kod, miasto, telefon ,email, COALESCE(przedstawiciel,0) AS przedstawiciel, COALESCE(wlasciciel,0) AS wlasciciel, COALESCE(ekspert,0) AS ekspert, COALESCE(dystrybutor,0) AS dystrybutor, uwagi FROM osoby ) WHERE imie LIKE ? OR nazwisko LIKE ? OR adres LIKE ? OR kod LIKE ? OR miasto LIKE ? OR telefon LIKE ?»);
PreparedStatement ps = connection.prepareStatement(SBSQL.toString());
ps.setString(1, «%TestA%»);
ps.setString(2, «%TestA%»);
ps.setString(3, «%TestA%»);
ps.setString(4, «%TestA%»);
ps.setString(5, «%TestA%»);
ps.setString(6, «%TestA%»);
result = ps.executeQuery();
while (result.next()) <
System.out.println(result.getInt(«IMIE»));
>
> finally <
connection.close();
>
> catch (SQLException ex) <
Logger.getLogger(TestConnectionPool.class.getName()).log(Level.SEVERE, null, ex);
>

SQL query which I used here works without a problem in IBExpert. I think that the problem lies in the driver Javabird and not as previously thought on the length of the field.

maj 16, 2014 12:51:02 AM testconnectionpool.TestConnectionPool main
SEVERE: null
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544569. Dynamic SQL Error
SQL error code = -303
arithmetic exception, numeric overflow, or string truncation
string right truncation
at org.firebirdsql.jdbc.AbstractPreparedStatement.internalExecute(AbstractPreparedStatement.java:801)
at org.firebirdsql.jdbc.AbstractPreparedStatement.executeQuery(AbstractPreparedStatement.java:182)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.firebirdsql.pool.PooledPreparedStatementHandler.invoke(PooledPreparedStatementHandler.java:171)
at org.firebirdsql.pool.$Proxy1.executeQuery(Unknown Source)
at testconnectionpool.TestConnectionPool.main(TestConnectionPool.java:49)
Caused by: org.firebirdsql.gds.GDSException: Dynamic SQL Error
SQL error code = -303
arithmetic exception, numeric overflow, or string truncation
string right truncation
at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.readStatusVector(AbstractJavaGDSImpl.java:2092)
at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.receiveResponse(AbstractJavaGDSImpl.java:2042)
at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.iscDsqlExecute2(AbstractJavaGDSImpl.java:1149)
at org.firebirdsql.gds.impl.GDSHelper.executeStatement(GDSHelper.java:227)
at org.firebirdsql.jdbc.AbstractPreparedStatement.internalExecute(AbstractPreparedStatement.java:797)
. 8 more

My Firebird is: WI-6.3.0.26074 Firebird 2.5
My Javabird are: Jaybird-2.2.5-JDK_1.7

The text was updated successfully, but these errors were encountered:

Источник

Sql error code 303 firebird

Профиль
Группа: Участник
Сообщений: 30
Регистрация: 21.10.2006

Репутация: нет
Всего: нет

AndZho
Дата 5.11.2007, 11:17 (ссылка) | (нет голосов) Загрузка .
Код
param = new FbParameter(«@CALL», FbDbType.Char);
param.Size = 15;
param.SourceColumn = «CALL»;
param.Direction = ParameterDirection.Input;
insertNameCommand.Parameters.Add(param);
Код
begin
tmp_idclient = gen_id(gen_t_corr_id, 1);
insert into t_corr (id_correspondent, correspondent_number, CALL, ID_NAME, ID_QT, ID_PICTURE )
values (:tmp_idclient, :tmp_idclient, :call, :id_name, :id_qt, :id_picture);
id_corr = :tmp_idclient;
correspondent_number=:tmp_idclient;
suspend;
end

Профиль
Группа: Участник
Сообщений: 30
Регистрация: 21.10.2006

Репутация: нет
Всего: нет

AndZho
Дата 10.11.2007, 11:50 (ссылка) | (нет голосов) Загрузка .
Прежде чем создать тему, посмотрите сюда:
  • Что же такое .NET? Краткое описание,изучаем.
  • Какой язык программирования выбрать? выбираем.
  • C#. С чего начать? начинаем.
  • Обзор новых возможностей VS 2005, интересуемся.
  • Защита исходного кода .NET приложений, защищаем.
  • Литература по .NET, обращаемся.
  • Вопросы по .NET можно задать также в разделах: VB.NET, Delphi.NET.
  • FAQ раздела,ищем здесь.
  • Архиполезные ссылки:www.connectionstrings.com, www.pinvoke.net, www.codeproject.com

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс «транслит» если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »

[ Время генерации скрипта: 0.0995 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Источник

Adblock
detector

I’m connecting to a Firebird 1.5 Database with PHP5.5’s PDO library with the following code

public function getProductByKod($kod)
{
    $exec = $this->getPdo()->prepare(
        "SELECT KOD, NEV, CICSOP, AR0, AR1 FROM CIKK WHERE KOD = :KOD"
    );
    $exec->bindParam(':KOD', trim($kod), PDO::PARAM_STR, 15);
    $exec->execute();
    return $exec->fetch();
}

the $kod is a string, and the firebird column KOD is a VARCHAR(15)

if i write anysort of string inside the $kod variable, it gives me this error:

PDOException: SQLSTATE[HY000]: General error: -303 Dynamic SQL Error SQL error code = -303 conversion error from string 

when the variable is empty, or its an integer it works.

I have no idea why it is doing this.

EDIT: KOD column in DbVisualizer

KOD column in terminal

EDIT2: i installed FBscanner on a windows server and watched what kind of SQl was sent to the server and i found out that the SQL was different!

SELECT AZON, CEG, ELONEV, VEZNEV, KERNEV, BEOSZT, HIVTEL, HIVTEL2, FAX, EMAIL, MOBIL, CEGIRSZ, CEGVAROS, CEGUTCA" FROM CEGTEL WHERE AZON = 'teszt'

and this is a different SQL entirely! This in from this function:

public function getPartnerConnectionsbyAzon($id)
{
    $exec = $this->getPdo()->prepare(
        "SELECT AZON, CEG, ELONEV, VEZNEV, KERNEV, BEOSZT, HIVTEL,"
        . "HIVTEL2, FAX, EMAIL, MOBIL, CEGIRSZ, CEGVAROS, CEGUTCA"
        . " FROM CEGTEL WHERE AZON = :AZON"
    );

    $exec->bindParam(':AZON', $id, PDO::PARAM_INT);
    $exec->execute();
    $return =  $exec->fetch();

    $exec->closeCursor();

    return $return;
}

and i read that some drivers need closing params, that’s why i put the closeCursor there but it still doesn’t work!

Hi,

I am getting the error below when Adding a Child. The size of the EPIM FRee database is 7G = 7,086,788KB. I am not doing anything special. I am only adding a new child. Have a reach a limit of some sort? At the moment, I can still read current notes and stuff, delete etc. but can’t add. I’ve empty the trash, run optimize and still the same problem. I thought I can delete some, empty trash and then delete but it is the same error message. I am now trying to make a copy of the current file and then delete lots to size it down and se if that helps. Hopefully it does but then that means I am hitting some kind of limits somewhere, number of notes :(

Any advice much appreciated. Thanks in advance.

There was an error during the execution of this program.
Click «Send» to submit the report to the developer. Please also provide any steps necessary to reproduce the problem.

Dynamic SQL Error
SQL error code = -303
arithmetic exception, numeric overflow, or string truncation.

——————————————————————————
Exception log with detailed tech info. Generated on 25/09/2014 2:05 p.m..
You may send it to the application vendor, helping him to understand what had happened.
Application title: [ Name of the EPIM file and the EPIM Executable = Essential PImportEssentialPIM.exe ]
Application: EssentialPIM Portable 5.82
——————————————————————————
Exception class: EIBInterBaseError
Exception message: Dynamic SQL Error
SQL error code = -303
arithmetic exception, numeric overflow, or string truncation.
Exception address: 00874014
——————————————————————————
Main thread ID = 9664
Exception thread ID = 9664
——————————————————————————
Object Logs:
12839646 SetViewMode OK
12839521 SetViewMode 3
12837837 SetViewMode OK
12837649 SetViewMode 0
12823984 DBOpen

——————————————————————————
Active Controls:
12863873 ExceptionDialog TextMemo
12859240 NotePropDialog Panel1 NameEd
12857181 MainForm FormPan FormPan2 NotesForm TreesTC NotesVT
12855652 MainForm FormPan FormPan2 NotesForm RichEditFrame1 TabsTC RichViewEdit
12855137 AdvertForm HtmlViewer1 TPaintPanel ThtTabControl
12854903 MainForm FormPan FormPan2 NotesForm RichEditFrame1 TabsTC RichViewEdit
12837337 MainForm
12824186 PassDialog GroupBox1 PasswordEd

——————————————————————————
Exception stack
Stack list, generated 25/09/2014 2:05 p.m.
[0087400F] IB.IBDataBaseError (Line 420, «IB.pas» + 39) [0089804E] IBDatabase.TIBTransaction.Call (Line 1665, «IBDatabase.pas» + 11) [0087BB21] IBSQL.TIBSQL.Call (Line 2483, «IBSQL.pas» + 3) [0087BE04] IBSQL.TIBSQL.ExecQuery (Line 2556, «IBSQL.pas» + 50) [00D44166] SyncObj.TNote.StoreUserDataToSQL (Line 5310, «SyncObj.pas» + 7) [0054DB5F] Vcl.Controls.TControl.Click (Line 7340, «Vcl.Controls.pas» + 9)
——————————————————————————
Call stack for main thread
Stack list, generated 25/09/2014 2:05 p.m.
(000460F4) [775F70F4]
——————————————————————————
System : Windows 7 Professional, Version: 6.1, Build: 1DB1, «Service Pack 1»
Memory: 2993; free 1891
Display : 1920×1080 pixels, 32 bpp, 96 PPI
——————————————————————————

Вопрос больше из спортивного интереса.

Есть Firebird 2.0.3.12981 и табличка в базе данных созданная следующим запросом:

Код: Выделить всё

CREATE TABLE LANGUAGE (

    ID      INTEGER NOT NULL PRIMARY KEY,
    NAME    VARCHAR(3) NOT NULL UNIQUE COLLATE PXW_CYRL,
    BASIC   CHAR(1) DEFAULT '0' NOT NULL CHECK (BASIC IN ('0', '1')),
    DSCR    VARCHAR(100) NOT NULL COLLATE PXW_CYRL
);

И есть код обращения к этой табличке.

Код: Выделить всё

<?php

$res = false;

$db = ibase_pconnect("localhost:d:/cms/j/database/base.gdb", 'sysdba', 'masterkey');
$tr = ibase_trans(IBASE_WRITE | IBASE_COMMITTED | IBASE_WAIT | IBASE_REC_NO_VERSION, $db);

if ($query = ibase_query($db, $tr, "SELECT COUNT(*) FROM LANGUAGE WHERE NAME = ?", "english")) {

    $row = ibase_fetch_row($query);
    $res = $row[0] != 0;
    ibase_free_result($query);
}

ibase_close($db);

var_dump($res);

?>

И есть результат.

Dynamic SQL Error SQL error code = -303 arithmetic exception, numeric overflow, or string truncation

Почему если использовать параметризированный запрос ошибка есть:

ibase_query($db, $tr, «SELECT COUNT(*) FROM LANGUAGE WHERE NAME = ?», «english»)

А если параметр в запросе не использовать – ошибки нет.

ibase_query($db, $tr, «SELECT COUNT(*) FROM LANGUAGE WHERE NAME = ‘english'»)

Чем такое поведение можно объяснить?

Submitted by: Łukasz Bączek (baczek00)

Hello Mark,

Sallis has written a small test in Java showing the problem:

Below you have the entire structure of the table:
__._,_.___

/******************************************************************************/
/* Generated by IBExpert 2013.10.8.1 2014-05-16 00:36:35 */
/******************************************************************************/

SET SQL DIALECT 3;

SET NAMES UTF8;

CREATE DATABASE ‘:C:TEST.FDB’
USER ‘SYSDBA’ PASSWORD ‘masterkey’
PAGE_SIZE 16384
DEFAULT CHARACTER SET UTF8 COLLATION UNICODE_CI_AI;

/******************************************************************************/
/* Domains */
/******************************************************************************/

CREATE DOMAIN CHECKBOX AS
SMALLINT
DEFAULT 0
CHECK (value is null or value in (0, 1));

/******************************************************************************/
/* Generators */
/******************************************************************************/

CREATE GENERATOR GEN_OSOBY_ID;
SET GENERATOR GEN_OSOBY_ID TO 138;

/******************************************************************************/
/* Tables */
/******************************************************************************/

CREATE TABLE OSOBY (
ID_OSOBY BIGINT NOT NULL,
IMIE VARCHAR(40) CHARACTER SET UTF8 NOT NULL COLLATE UNICODE_CI_AI,
NAZWISKO VARCHAR(120) CHARACTER SET UTF8 NOT NULL COLLATE UNICODE_CI_AI,
ADRES VARCHAR(150) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI,
KOD VARCHAR(6) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI,
MIASTO VARCHAR(30) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI,
TELEFON VARCHAR(12) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI,
EMAIL VARCHAR(60) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI,
DYSTRYBUTOR CHECKBOX,
EKSPERT CHECKBOX,
PRZEDSTAWICIEL CHECKBOX,
WLASCICIEL CHECKBOX,
UWAGI VARCHAR(500) CHARACTER SET UTF8 COLLATE UNICODE_CI_AI
);

INSERT INTO OSOBY (ID_OSOBY, IMIE, NAZWISKO, ADRES, KOD, MIASTO, TELEFON, EMAIL, DYSTRYBUTOR, EKSPERT, PRZEDSTAWICIEL, WLASCICIEL, UWAGI) VALUES (137, ‘TESTA’, ‘TESTb’, ‘xxx’, ’00-000′, ‘TestC’, ‘1234567’, ‘DEMO@DEMO.DEMO’, 0, 0, 0, 0, NULL);
INSERT INTO OSOBY (ID_OSOBY, IMIE, NAZWISKO, ADRES, KOD, MIASTO, TELEFON, EMAIL, DYSTRYBUTOR, EKSPERT, PRZEDSTAWICIEL, WLASCICIEL, UWAGI) VALUES (138, ‘Jan’, ‘Kowalski’, ‘Aniołów 5′, ’83-100’, ‘Warszawa’, ‘0123456’, ‘jan.kowalski@demo.demo’, 0, 0, 0, 0, NULL);

COMMIT WORK;

/******************************************************************************/
/* Primary Keys */
/******************************************************************************/

ALTER TABLE OSOBY ADD CONSTRAINT PK_OSOBY PRIMARY KEY (ID_OSOBY);

/******************************************************************************/
/* Triggers */
/******************************************************************************/

SET TERM ^ ;

/******************************************************************************/
/* Triggers for tables */
/******************************************************************************/

/* Trigger: OSOBY_BI */
CREATE TRIGGER OSOBY_BI FOR OSOBY
ACTIVE BEFORE INSERT POSITION 0
as
begin
if (new.id_osoby is null) then
new.id_osoby = gen_id(gen_osoby_id,1);
end
^

SET TERM ; ^

And so reads the data:

*/
public static void main(String[] args) {
try {
FBWrappingDataSource pool = new FBWrappingDataSource();
pool.setMaxPoolSize(5);
pool.setMinPoolSize(2);
pool.setMaxStatements(2);
pool.setMaxIdleTime(30 * 60 * 60);
pool.setDatabase(«<//127.0.0.1/C:/TEST.FDB>»);
pool.setUserName(«SYSDBA»);
pool.setPassword(«masterkey»);
pool.setCharSet(«UTF8»);
pool.setEncoding(«UTF8»);
Connection connection = pool.getConnection();
try {
ResultSet result = null;
StringBuilder SBSQL = new StringBuilder();
SBSQL.append(«SELECT * FROM (SELECT id_osoby, imie, nazwisko, adres, kod, miasto, telefon ,email, COALESCE(przedstawiciel,0) AS przedstawiciel, COALESCE(wlasciciel,0) AS wlasciciel, COALESCE(ekspert,0) AS ekspert, COALESCE(dystrybutor,0) AS dystrybutor, uwagi FROM osoby ) WHERE imie LIKE ? OR nazwisko LIKE ? OR adres LIKE ? OR kod LIKE ? OR miasto LIKE ? OR telefon LIKE ?»);
PreparedStatement ps = connection.prepareStatement(SBSQL.toString());
ps.setString(1, «%TestA%»);
ps.setString(2, «%TestA%»);
ps.setString(3, «%TestA%»);
ps.setString(4, «%TestA%»);
ps.setString(5, «%TestA%»);
ps.setString(6, «%TestA%»);
result = ps.executeQuery();
while (result.next()) {
System.out.println(result.getInt(«IMIE»));
}
} finally {
connection.close();
}
} catch (SQLException ex) {
Logger.getLogger(TestConnectionPool.class.getName()).log(Level.SEVERE, null, ex);
}

SQL query which I used here works without a problem in IBExpert. I think that the problem lies in the driver Javabird and not as previously thought on the length of the field.

maj 16, 2014 12:51:02 AM testconnectionpool.TestConnectionPool main
SEVERE: null
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544569. Dynamic SQL Error
SQL error code = -303
arithmetic exception, numeric overflow, or string truncation
string right truncation
at org.firebirdsql.jdbc.AbstractPreparedStatement.internalExecute(AbstractPreparedStatement.java:801)
at org.firebirdsql.jdbc.AbstractPreparedStatement.executeQuery(AbstractPreparedStatement.java:182)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.firebirdsql.pool.PooledPreparedStatementHandler.invoke(PooledPreparedStatementHandler.java:171)
at org.firebirdsql.pool.$Proxy1.executeQuery(Unknown Source)
at testconnectionpool.TestConnectionPool.main(TestConnectionPool.java:49)
Caused by: org.firebirdsql.gds.GDSException: Dynamic SQL Error
SQL error code = -303
arithmetic exception, numeric overflow, or string truncation
string right truncation
at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.readStatusVector(AbstractJavaGDSImpl.java:2092)
at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.receiveResponse(AbstractJavaGDSImpl.java:2042)
at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.iscDsqlExecute2(AbstractJavaGDSImpl.java:1149)
at org.firebirdsql.gds.impl.GDSHelper.executeStatement(GDSHelper.java:227)
at org.firebirdsql.jdbc.AbstractPreparedStatement.internalExecute(AbstractPreparedStatement.java:797)
… 8 more

My Firebird is: WI-6.3.0.26074 Firebird 2.5
My Javabird are: Jaybird-2.2.5-JDK_1.7

Regards

Ошибка при конвертации — Error Code: 249

<Алесандр>

30 декабря 2008, 17:12#

Подкажите, у меня при конвертации выдается ошибка: Ошибка!

Dynamic SQL Error

SQL error code = -303

arithmetic exception, numeric overflow, or string truncation

Incompatible column/host variable data type

Error Code: 249

Что делать?

Сохраните вашу базу из 6-го Бизнес Пака (Сервис → Архивация данных) и отправьте по адресу all@pvision.ru.

<Василий>

30 декабря 2008, 18:12#

Добрый день!

Огромное спасибо за программу «Бизнес Пак».

У меня стояла программа «Бизнес Пак» версии 6.42, установил версию 7.

В каталоге программы запускаю конвертер базы данных файл conv67.exe., вылетает ошибка:

Ошибка!

Dynamic SQL Error SQL error code = -303 arithmetic exception, numeric overflow, or string truncation Incompatible column/host variable data type Error Code: 249

Подскажите что нужно сделать.

С уважением,

В.Соловьев

<Виктор>

30 декабря 2008, 23:12#

Подкажите, у меня при конвертации выдается ошибка: Ошибка!

Dynamic SQL Error

SQL error code = -303

arithmetic exception, numeric overflow, or string truncation

Incompatible column/host variable data type

Error Code: 249

<Дмитрий>

02 января 2009, 03:01#

eleomis, Скачал дистр. 02/01/2009но ошибка Error Code: 249 так и есть!

<Дмитрий>

02 января 2009, 18:01#

Выдаёт ошибку 249 при конвертации базы данных из 6.42. 7 версия скачана сегодня — 02.01.2009 в 16-00 по Москве. Подскажите, что делать? Заранее спасибо.

<Magic>

05 января 2009, 13:01#

Вылезла ошибка при конвертации базы

Ошибка!

Dynamic SQL Error

SQL error code = -303

arithmetic exception, numeric overflow, or string truncation

Incompatible column/host variable data type

Error Code: 249

05.12.2008 в 12.00 МСК Скачал программу ещё раз, все перезпустил и опять таже оибка.

<Magic>
Вылезла ошибка при конвертации базы

Ошибка!

Dynamic SQL Error

SQL error code = -303

arithmetic exception, numeric overflow, or string truncation

Incompatible column/host variable data type

Error Code: 249

Выложите лог конвертера, также желательно было бы посмотреть вашу базу, если это возможно отправьте ее по адресу all@pvision.ru.

<Елизавета>

11 января 2009, 08:01#

Во-первых, при конвертации базы происходит ошибка:

Dynamic SQL Error

SQL error code = -303

arithmetic exception, numeric overflow, or string truncation

Incompatible column/host variable data type

Error Code: 249

Во-вторых, на другом компьютере программа установилась без проблем, однако при запуске сразу же выдается ошибка и программа вообще не запускается

<enman>

11 января 2009, 11:01#

Для всех у кого при конвертации возникала ошибка:

Dynamic SQL Error

SQL error code = -303

arithmetic exception, numeric overflow, or string truncation

Incompatible column/host variable data type

Error Code: 249

скачайте заново дистрибутив программы, ошибку исправили.

Нет, у меня, например, все таже ошибка. Как быть?

<Ольга>

12 января 2009, 15:01#

Для всех у кого при конвертации возникала ошибка:

Dynamic SQL Error

SQL error code = -303

arithmetic exception, numeric overflow, or string truncation

Incompatible column/host variable data type

Error Code: 249

скачайте заново дистрибутив программы, ошибку исправили.

Скачала дистрибутив вчера (т.е. 11 января, на одну машину все встало хорошо, а на две другие в разных организациях с той же самой ошибкой, не понимаю в чем дело. Помогите горю!!!

<Ольга Подкопаева>

15 января 2009, 16:01#

меня стояла программа «Бизнес Пак» версии 6.42, установил версию 7.

В каталоге программы запускаю конвертер базы данных файл conv67.exe., вылетает ошибка:

Ошибка!

Dynamic SQL Error SQL error code = -303 arithmetic exception, numeric overflow, or string truncation Incompatible column/host variable data type Error Code: 249

Подскажите что нужно сделать.

Подкопаева Ольга

<Ольга Подкопаева>, номер билда сообщите (указан в скобках в заголовке окна программы).

<Подкопаева ольга>

15 января 2009, 17:01#

eleomis, 6.42,

<Подкопаева ольга>, 6.42 — это версия 6-го Бизнес Пака, меня интересует номер билда 7-го.

<Александр>

18 января 2009, 12:01#

Скачал 18.01.09 bp7 размер 3366137 байт (версия 567). При конвертации выдает

Преобразование таблицы документов…

can’t process record #3277

====================================

Ошибка!

Dynamic SQL Error

SQL error code = -303

arithmetic exception, numeric overflow, or string truncation

Incompatible column/host variable data type

Error Code: 249

====================================

<Владимир>

19 января 2009, 21:01#

Подкажите, у меня при конвертации выдается ошибка: Ошибка!

Dynamic SQL Error

SQL error code = -303

arithmetic exception, numeric overflow, or string truncation

Incompatible column/host variable data type

Error Code: 249

<Александр>, <Владимир>

Отправьте базу от 6-го БП по адресу all@pvision.ru.

Сообщение перенесено в тему «Бизнес Пак 7» / «Работа с программой» / «Работа по сети». Перейти

<pharad>

27 января 2009, 12:01#

Oшибка!

Dynamic SQL Error

SQL error code = -303

arithmetic exception, numeric overflow, or string truncation

Incompatible column/host variable data type

Error Code: 249

При конвертации выдает вышеизложенное, только что перекачал еще раз, то-же самое, что делать?

На чтение 8 мин Обновлено 16.01.2023

Sql error code 303 arithmetic exception numeric overflow or string truncation

» title=»>» width=»8″ height=»8″/> Ошибка 303, FireBird

TechnoMag
Дата 22.8.2013, 20:12 (ссылка) | (нет голосов) Загрузка .

Шустрый

Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.3.2010

Репутация: нет
Всего: нет

Код
CREATE TABLE NEWS (
ID D_ID NOT NULL /* D_ID = INTEGER */,
TITLE D_NEWS_TITLE NOT NULL /* D_NEWS_TITLE = CHAR(255) */,
PRICE D_PRICE /* D_PRICE = CHAR(20) */,
DATE_NEW D_DATE NOT NULL /* D_DATE = DATE */,
LINK D_LINK /* D_LINK = CHAR(255) */,
FAVORITE D_BOOL /* D_BOOL = SMALLINT DEFAULT 0 CHECK (VALUE IN (1,0)) */,
ID_CITE_M D_ID /* D_ID = INTEGER */,
TAG D_ID /* D_ID = INTEGER */
);

CREATE TABLE NEWS_INFO (
ID D_ID NOT NULL /* D_ID = INTEGER */,
INFO D_NEWS_INFO /* D_NEWS_INFO = CHAR(4096) */
);

create or alter procedure INSERT_NEW (
IN_NAME D_NEWS_TITLE,
IN_BUDGET D_PRICE,
IN_URL D_LINK,
IN_CATEGORY D_TAG_NAME,
IN_PLUGIN_NAME D_CITE_NAME,
IN_DESCRIPTION D_NEWS_INFO)
as
declare variable ID_TAG D_ID;
declare variable ID_PLUGIN D_ID;
declare variable ID_NEW_PROJECT D_ID;
begin
select ID FROM cites WHERE NAME=:in_plugin_name
INTO :ID_PlUGIN;
if (NOT exists (SELECT tag_name FROM tags where tag_name=:in_category)) THEN
INSERT INTO TAGs (tag_name) VALUES (:IN_category);
select ID FROM tags WHERE TAG_NAME=:in_category
INTO :ID_TAG;
ID_NEW_PROJECT = GEN_ID(GEN_NEWS_ID, 1);
insert into news (ID, TITLE, PRICE, DATE_NEW, LINK, FAVORITE, ID_CITE_M, TAG)
VALUES (:ID_NEW_PROJECT, :in_name, :in_budget, current_date, :in_url, 0, :ID_PLUGIN, :ID_TAG );
insert into news_info (ID, INFO) VALUES (:ID_NEW_PROJECT, :IN_DESCRIPTION);
POST_EVENT ‘eventNewProjectIsAdded’;
end^

Выполнение хранимой процедуры:

Код
procedure TDataModule1.InsertNewProject(Name, Budget, Url, Category,
Description, PluginName: string);
begin
pFIBTransactionWrite.Active := true;
pFIBStoredProc1.StoredProcName := ‘INSERT_NEW’;
pFIBStoredProc1.Params.ParamByName(‘IN_NAME’).AsString := Name;
pFIBStoredProc1.Params.ParamByName(‘IN_BUDGET’).AsString := Budget;
pFIBStoredProc1.Params.ParamByName(‘IN_URL’).AsString := Url;
pFIBStoredProc1.Params.ParamByName(‘IN_CATEGORY’).AsString := Name;
pFIBStoredProc1.Params.ParamByName(‘IN_PLUGIN_NAME’).AsString := PluginName;
pFIBStoredProc1.Params.ParamByName(‘IN_DESCRIPTION’).AsString := Description;
pFIBStoredProc1.Prepare;
pFIBStoredProc1.ExecProc;
end;
Код
Incompatible column/host variable data type.
Dynamic SQL error.
SQL error code = -303.
Arithmetic exception, numeric overflow or string truncation.
String right truncation.

Пару записей вставились, но при последующих попытках была вышестоящая ошибка. Может проблема в длинной строке?

Akella
Дата 23.8.2013, 08:44 (ссылка) | (нет голосов) Загрузка .

Творец

Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329

Добавлено через 34 секунды
Вероятнее всего, что ты передаёшь в параметр строку более длинную, недели размер поля в базе.

Добавлено через 2 минуты и 5 секунд
попробуй делать так

Код
query.ParamByName(‘title’).AsString := copy(title, 1, 512);// 512 — это размер поля в таблице
query.ParamByName(‘ADDRESS’).AsString := Copy(ADDRESS, 1, 255); // 255 — это размер поля в таблице

Добавлено через 3 минуты и 18 секунд
я бы эту строку убрал

Цитата
pFIBStoredProc1.Prepare;

или попробуй поставить её до того, как ты начнёшь присваивать значения параметрам

TechnoMag
Дата 23.8.2013, 16:20 (ссылка) | (нет голосов) Загрузка .

Шустрый

Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.3.2010

Репутация: нет
Всего: нет

Профиль
Группа: Участник
Сообщений: 39
Регистрация: 8.11.2007

Репутация: нет
Всего: 2

Incompatible column/host variable data type. — Вы явно пытаетесь вставить несовместимый тип данных в столбец другого типа! Например, float в int.

Этот ответ добавлен с нового Винграда — http://vingrad.com

Game-lot
Дата 25.8.2013, 21:38 (ссылка) | (нет голосов) Загрузка .

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) — крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

Правила форума «Delphi: Базы данных и репортинг»
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »

[ Время генерации скрипта: 0.1106 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Источник

Sql error code 303 arithmetic exception numeric overflow or string truncation

» title=»>» width=»8″ height=»8″/> Ошибка 303, FireBird

TechnoMag
Дата 22.8.2013, 20:12 (ссылка) | (нет голосов) Загрузка .

Шустрый

Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.3.2010

Репутация: нет
Всего: нет

Код
CREATE TABLE NEWS (
ID D_ID NOT NULL /* D_ID = INTEGER */,
TITLE D_NEWS_TITLE NOT NULL /* D_NEWS_TITLE = CHAR(255) */,
PRICE D_PRICE /* D_PRICE = CHAR(20) */,
DATE_NEW D_DATE NOT NULL /* D_DATE = DATE */,
LINK D_LINK /* D_LINK = CHAR(255) */,
FAVORITE D_BOOL /* D_BOOL = SMALLINT DEFAULT 0 CHECK (VALUE IN (1,0)) */,
ID_CITE_M D_ID /* D_ID = INTEGER */,
TAG D_ID /* D_ID = INTEGER */
);

CREATE TABLE NEWS_INFO (
ID D_ID NOT NULL /* D_ID = INTEGER */,
INFO D_NEWS_INFO /* D_NEWS_INFO = CHAR(4096) */
);

create or alter procedure INSERT_NEW (
IN_NAME D_NEWS_TITLE,
IN_BUDGET D_PRICE,
IN_URL D_LINK,
IN_CATEGORY D_TAG_NAME,
IN_PLUGIN_NAME D_CITE_NAME,
IN_DESCRIPTION D_NEWS_INFO)
as
declare variable ID_TAG D_ID;
declare variable ID_PLUGIN D_ID;
declare variable ID_NEW_PROJECT D_ID;
begin
select ID FROM cites WHERE NAME=:in_plugin_name
INTO :ID_PlUGIN;
if (NOT exists (SELECT tag_name FROM tags where tag_name=:in_category)) THEN
INSERT INTO TAGs (tag_name) VALUES (:IN_category);
select ID FROM tags WHERE TAG_NAME=:in_category
INTO :ID_TAG;
ID_NEW_PROJECT = GEN_ID(GEN_NEWS_ID, 1);
insert into news (ID, TITLE, PRICE, DATE_NEW, LINK, FAVORITE, ID_CITE_M, TAG)
VALUES (:ID_NEW_PROJECT, :in_name, :in_budget, current_date, :in_url, 0, :ID_PLUGIN, :ID_TAG );
insert into news_info (ID, INFO) VALUES (:ID_NEW_PROJECT, :IN_DESCRIPTION);
POST_EVENT ‘eventNewProjectIsAdded’;
end^

Выполнение хранимой процедуры:

Код
procedure TDataModule1.InsertNewProject(Name, Budget, Url, Category,
Description, PluginName: string);
begin
pFIBTransactionWrite.Active := true;
pFIBStoredProc1.StoredProcName := ‘INSERT_NEW’;
pFIBStoredProc1.Params.ParamByName(‘IN_NAME’).AsString := Name;
pFIBStoredProc1.Params.ParamByName(‘IN_BUDGET’).AsString := Budget;
pFIBStoredProc1.Params.ParamByName(‘IN_URL’).AsString := Url;
pFIBStoredProc1.Params.ParamByName(‘IN_CATEGORY’).AsString := Name;
pFIBStoredProc1.Params.ParamByName(‘IN_PLUGIN_NAME’).AsString := PluginName;
pFIBStoredProc1.Params.ParamByName(‘IN_DESCRIPTION’).AsString := Description;
pFIBStoredProc1.Prepare;
pFIBStoredProc1.ExecProc;
end;
Код
Incompatible column/host variable data type.
Dynamic SQL error.
SQL error code = -303.
Arithmetic exception, numeric overflow or string truncation.
String right truncation.

Пару записей вставились, но при последующих попытках была вышестоящая ошибка. Может проблема в длинной строке?

Akella
Дата 23.8.2013, 08:44 (ссылка) | (нет голосов) Загрузка .

Творец

Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329

Добавлено через 34 секунды
Вероятнее всего, что ты передаёшь в параметр строку более длинную, недели размер поля в базе.

Добавлено через 2 минуты и 5 секунд
попробуй делать так

Код
query.ParamByName(‘title’).AsString := copy(title, 1, 512);// 512 — это размер поля в таблице
query.ParamByName(‘ADDRESS’).AsString := Copy(ADDRESS, 1, 255); // 255 — это размер поля в таблице

Добавлено через 3 минуты и 18 секунд
я бы эту строку убрал

Цитата
pFIBStoredProc1.Prepare;

или попробуй поставить её до того, как ты начнёшь присваивать значения параметрам

TechnoMag
Дата 23.8.2013, 16:20 (ссылка) | (нет голосов) Загрузка .

Шустрый

Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.3.2010

Репутация: нет
Всего: нет

Профиль
Группа: Участник
Сообщений: 39
Регистрация: 8.11.2007

Репутация: нет
Всего: 2

Incompatible column/host variable data type. — Вы явно пытаетесь вставить несовместимый тип данных в столбец другого типа! Например, float в int.

Этот ответ добавлен с нового Винграда — http://vingrad.com

Game-lot
Дата 25.8.2013, 21:38 (ссылка) | (нет голосов) Загрузка .

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) — крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

Правила форума «Delphi: Базы данных и репортинг»
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »

[ Время генерации скрипта: 0.0969 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Источник

Читайте также:  Error unknown filesystem grub rescue proxmox

Adblock
detector

 
Id
 
(2006-05-12 14:45)
[0]

Здраствуйте, уважаемые мастера.
Подскажите, пожалуйста, что означает данная ошибка?


 
Johnmen ©
 
(2006-05-12 14:46)
[1]

код ошибки Языка Структурированных Запросов равен -303


 
Id
 
(2006-05-12 14:53)
[2]


> Johnmen ©   (12.05.06 14:46) [1]

303 — несет какую-то информацию


 
Johnmen ©
 
(2006-05-12 14:56)
[3]


> 303 — несет какую-то информацию

Какую?
По-моему, в данном [0] контексте  — никакой.


 
Id
 
(2006-05-12 15:04)
[4]

Dynamic SQL Error
SQL error code = -303
conversion error from string «копия»
Полный контекст


 
Johnmen ©
 
(2006-05-12 15:08)
[5]

А сервер DB2 ?


 
Id
 
(2006-05-12 15:09)
[6]

FB 1.5


 
Сергей М. ©
 
(2006-05-12 15:11)
[7]

В параметрах коннекта lc_ctype=1251 ?


 
Id
 
(2006-05-12 15:12)
[8]


> Сергей М. ©   (12.05.06 15:11) [7]

lc_ctype=WIN1251


 
Johnmen ©
 
(2006-05-12 15:12)
[9]

http://www.ibase.ru/devinfo/ibrusfaq.htm


 
Сергей М. ©
 
(2006-05-12 15:19)
[10]

поле, в котором фигурирует текст «копия», должно иметь соотв.атрибут CHARSET ?


 
Id
 
(2006-05-12 15:29)
[11]

Если честно не знаю, что это за аттрибут.
Встречал его только при регистрации базы данных в IbExpert-e


 
Сергей М. ©
 
(2006-05-12 15:36)
[12]

Ты когда это поле (или некий параметр ?) декларировал, указывал явно евойный CHARACTER SET &


 
Id
 
(2006-05-12 15:40)
[13]


>
> Сергей М. ©   (12.05.06 15:36) [12]

VARCHAR(10) CHARACTER SET WIN1251
Я надеюсь Вы об этом.


 
Сергей М. ©
 
(2006-05-12 15:48)
[14]

Тогда приводи конкретную строчку Делфи-кода, выполнение которой привело к искл-ю с такой вот диагностикой..


 
Id
 
(2006-05-13 15:52)
[15]


> Сергей М. ©   (12.05.06 15:48) [14]


with datamodule1.ibquery1 do begin
close;
sql.clear;
sql.add("insert into Table1 (FIO,Copi)values(:fio,:copi)");
prepare;
paramByName("fio").asstring:=Combobox1.text;
paramByName("copi").asstring:=Combobox2.text;
open;
end;

Ошибка возникает при Open.


 
Desdechado ©
 
(2006-05-13 20:43)
[16]

Open переводится как «открыть набор данных»
а ты делаешь INSERT, что переводится как «добавить данные»
отсюда делаем вывод, что метод Open подходит только для SELECT
а прочитав справку, узнаем, что для всего остального подходит ExecSQL


Кристина525

0 / 0 / 0

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

Сообщений: 68

1

03.12.2015, 15:06. Показов 2358. Ответов 9

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


Здравствуйте. У меня такая проблема. Не получается добавить запись в таблицу Заказы, выдает ошибку «SQL error code = -303 conversion error from string «Здесь пишет ФИО клиента». Ниже приведен код кнопки добавления. Кто-нибудь может помочь исправить эту ошибку, пожалуйста?

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure TForm2.Button1Click(Sender: TObject);
begin
 with Form1 do
 begin
 ZakazQuery.Active:=false; //деактивизируем запрос вывода
 WorkZakazQuery.SQL.Clear;
//Создаем запрос для добавления новой записи
 WorkZakazQuery.SQL.Add('INSERT INTO ZAKAZY (id, nomer_zakaza, data_zakaza, izdelie, data_ispolneniya, data_primerki, stoimost, clients) VALUES (:id, :nomer_zakaza, :data_zakaza, :izdelie, :data_ispolneniya, :data_primerki, :stoimost, :clients)');
//Заполняем информационные поля
 WorkZakazQuery.ParamByName('nomer_zakaza').AsString:=Edit1.Text;
 WorkZakazquery.ParamByName('data_zakaza').AsDate:=DateTimePicker1.Date;
 WorkZakazQuery.ParamByName('izdelie').AsString:=Edit3.Text;
 WorkZakazquery.ParamByName('data_ispolneniya').AsDate:=DateTimePicker2.Date;
 WorkZakazquery.ParamByName('data_primerki').AsDate:=DateTimePicker3.Date;
 WorkZakazQuery.ParamByName('stoimost').AsString:=Edit4.Text;
 //идентификатор клиента получаемся из таблицы CLIENTS
 WorkZakazQuery.ParamByName('clients').AsInteger:=IBQuery1.FieldByName('id').AsInteger;
 //Выполняем запрос
 try
 WorkZakazQuery.ExecSQL;
 WorkZakazQuery.Transaction.Commit;
 except
 showmessage('Ошибка выполнения операции');
 WorkZakazQuery.Transaction.Rollback;
 end;
 ZakazQuery.Active:=true;
 end;
end;

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Programming

Эксперт

94731 / 64177 / 26122

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

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

03.12.2015, 15:06

Ответы с готовыми решениями:

HTTP/1.1 303 See Other
добрый день!

Я пытаюсь сделать автообновление своей программы. Алгоритм знаю, хостинг есть, всё…

ЛТН 303
есть у кого описание? или может ссылка?, не могу нигде найти, известно только , что он…

Ошибки жесткого диска 303 и 305
Никаких проблем до этого дня не было. Сегодня играл в доту как вдруг ноут повис, в результате…

Firebird SQL error code = -303
Главная проблема в том, что в документации нигде мне не удалось найти, что это за ошибка такая…

9

4732 / 3937 / 997

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

Сообщений: 25,242

Записей в блоге: 3

03.12.2015, 15:59

2

а где заполняется параметр :id?



0



0 / 0 / 0

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

Сообщений: 68

04.12.2015, 04:08

 [ТС]

3

для заполнения id в IBexperte создан триггер и генератор



0



4732 / 3937 / 997

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

Сообщений: 25,242

Записей в блоге: 3

04.12.2015, 08:47

4

Кристина525, ну тогда думайте откуда программа знает ФИО — тут то его вроде бы нет
проверяйте текст запроса до выполнения WorkZakazQuery.ExecSQL;



0



Супер-модератор

8781 / 2532 / 144

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

Сообщений: 11,873

04.12.2015, 10:53

5

Кристина525, так если id заполняется у вас в триггере, его не надо использовать в запросе… а у вас вообще хоть где-то есть такое словосочетание в программе или базе?



0



0 / 0 / 0

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

Сообщений: 68

04.12.2015, 11:35

 [ТС]

6

Lord_Voodoo, не очень поняла, какое словосочетание?

Добавлено через 42 секунды
qwertehok, неделю думала, ничего не придумала, поэтому обратилась на форум



0



Супер-модератор

8781 / 2532 / 144

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

Сообщений: 11,873

04.12.2015, 12:29

7

Кристина525, ФИО клиента



0



0 / 0 / 0

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

Сообщений: 68

04.12.2015, 12:50

 [ТС]

8

Lord_Voodoo, ФИО клиента у меня записано в таблице Клиенты, когда нажимаю на одного из клиентов, потом тыкаю кнопку «заказы», у меня появляются заказы для этого клиента. И мне нужно сделать так, чтобы можно было добавить заказы, но этого не выходит, не понимаю почему, всяко пыталась менять код



0



Алекcей

526 / 464 / 182

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

Сообщений: 2,452

04.12.2015, 13:00

9

замените строки 10-15 на:

Delphi
1
2
3
4
5
6
 WorkZakazQuery.ParamByName('nomer_zakaza').AsString:=Form2.Edit1.Text;
 WorkZakazQuery.ParamByName('izdelie').AsString:=Form2.Edit3.Text;
 WorkZakazQuery.ParamByName('stoimost').AsString:=Form2.Edit4.Text;
 WorkZakazquery.ParamByName('data_zakaza').AsDateTime:=Form2.DateTimePicker1.Date;
 WorkZakazquery.ParamByName('data_ispolneniya').AsDateTime:=Form2.DateTimePicker2.Date;
 WorkZakazquery.ParamByName('data_primerki').AsDateTime:=Form2.DateTimePicker3.Date;



0



0 / 0 / 0

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

Сообщений: 68

04.12.2015, 13:16

 [ТС]

10

Алекcей, точно! спасибо большое



0



Понравилась статья? Поделить с друзьями:

Читайте также:

  • Dyn damping control ошибка бмв х5 е70
  • Dying light системная ошибка msvcp110 dll
  • Dying light ошибка при запуске приложения 0xc0000906
  • Dune 2000 как изменить разрешение экрана
  • Dying light ошибка записи на диск

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии