Содержание
- Arithmetic exception, numeric overflow, or string truncation
- 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
- Comments
- 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 |
|
||
Код |
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 |
|
||
Прежде чем создать тему, посмотрите сюда: | |
Используйте теги [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:
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 МСК Скачал программу ещё раз, все перезпустил и опять таже оибка.
Вылезла ошибка при конвертации базы
Ошибка!
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 |
|
||
Шустрый Профиль Репутация: нет
CREATE TABLE NEWS_INFO ( |
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 |
|
|||
Творец Профиль Репутация: 29 Добавлено через 34 секунды Добавлено через 2 минуты и 5 секунд
Добавлено через 3 минуты и 18 секунд
или попробуй поставить её до того, как ты начнёшь присваивать значения параметрам |
||||
|
TechnoMag |
|
||
Шустрый Профиль Репутация: нет |
|||
|
Профиль
Группа: Участник
Сообщений: 39
Регистрация: 8.11.2007
Репутация: нет
Всего: 2
Incompatible column/host variable data type. — Вы явно пытаетесь вставить несовместимый тип данных в столбец другого типа! Например, float в int.
Этот ответ добавлен с нового Винграда — http://vingrad.com
Game-lot |
|
||
1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.
[ Время генерации скрипта: 0.1106 ] [ Использовано запросов: 21 ] [ GZIP включён ] Источник Sql error code 303 arithmetic exception numeric overflow or string truncation
create or alter procedure INSERT_NEW ( Выполнение хранимой процедуры:
Пару записей вставились, но при последующих попытках была вышестоящая ошибка. Может проблема в длинной строке? |
||||||||||||||||
|
Akella |
|
|||
Творец Профиль Репутация: 29 Добавлено через 34 секунды Добавлено через 2 минуты и 5 секунд
Добавлено через 3 минуты и 18 секунд
или попробуй поставить её до того, как ты начнёшь присваивать значения параметрам |
||||
|
TechnoMag |
|
||
Шустрый Профиль Репутация: нет |
|||
|
Профиль
Группа: Участник
Сообщений: 39
Регистрация: 8.11.2007
Репутация: нет
Всего: 2
Incompatible column/host variable data type. — Вы явно пытаетесь вставить несовместимый тип данных в столбец другого типа! Например, float в int.
Этот ответ добавлен с нового Винграда — http://vingrad.com
Game-lot |
|
||
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 «Здесь пишет ФИО клиента». Ниже приведен код кнопки добавления. Кто-нибудь может помочь исправить эту ошибку, пожалуйста?
__________________
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, ну тогда думайте откуда программа знает ФИО — тут то его вроде бы нет
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 секунды
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 на:
0 |
0 / 0 / 0 Регистрация: 20.11.2013 Сообщений: 68 |
|
04.12.2015, 13:16 [ТС] |
10 |
Алекcей, точно! спасибо большое
0 |