我建立了一个数据库,插入数据后,只要连接数据库,就出现:Translate Error.Value out of bounds.尝试转换源字段中因语法错误而停止的数据。编译根本无法通过数据表如下:/* Table:Publishbook, 用于记录出版社发印情况 */
CREATE TABLE PublishBook
(Dep_Name NVarchar(30) NOT NULL,
Book_Name NVarchar(30) NOT NULL,
Worksheet NVarchar(30) NOT NULL,
Send_Com NVarchar(30) ,
Send_Amount INTEGER ,
End_Date NVarchar(30),
Add_Com NVarchar(30),
Add_Amount INTEGER ,
Add_Date NVarchar(30)
);
GO
插入数据如下:
Insert Into Publishbook(Dep_Name,Book_Name,Worksheet,Send_Com,Send_Amount,End_Date,Add_Com,Add_Amount,
Add_Date)
Values(N'广东教育出版社',N'思想品德十一册',N'04Q612',N'省新华书店',N'3000',N'2004-06-25',null,null,null)
GOInsert Into Publishbook(Dep_Name,Book_Name,Worksheet,Send_Com,Send_Amount,End_Date,Add_Com,Add_Amount,
Add_Date)
Values(N'广东教育出版社',N'思想品德第七册',N'04Q625',N'省新华书店',N'4000',N'2004-06-25',null,null,null)
GOInsert Into Publishbook(Dep_Name,Book_Name,Worksheet,Send_Com,Send_Amount,End_Date,Add_Com,Add_Amount,
Add_Date)
Values(N'广东人民出版社',N'开心学英语教学挂图3',N'A2003358',N'教育书店',N'1900',N'2004-08-06',null,null,null)
GO但是当我把所有数据删除,再重新编译,就可以通过,但是在任意执行一个查询时,会出现错误,假设我查询思想品德,出现错误如下:
“思想品德”is not a valid floating poing value;我真是想不懂啊,照这种情况应该是数据库有问题,但是在数据库中,可以执行查询,插入等所有的操作呢。
在Delphi中,我用的是Datamodule窗体,AdoConnection,Adodataset,Database,TTable,Tdataset来进行数据库连接的。在应用窗口中用Checkbox来查询数据的,代码如下:if CB_All.checked then //查询书名
begin
FilterStr:='Book_Name='''+i_AllName.Text+'''' ;
i_AllWorksheet.Clear;
end;
if CB_Allsheet.Checked then //查询工号
begin
FilterStr:='Worksheet='''+i_AllWorksheet.Text+'''';
i_AllName.Clear;
end; if length(FilterStr)>0 then
begin
Filter:=FilterStr;
Filtered:=True;
end
else
Filtered:=False;
Open;
哪位帮我看看啊,急死我了,校长有空就问我:编好没有呀
CREATE TABLE PublishBook
(Dep_Name NVarchar(30) NOT NULL,
Book_Name NVarchar(30) NOT NULL,
Worksheet NVarchar(30) NOT NULL,
Send_Com NVarchar(30) ,
Send_Amount INTEGER ,
End_Date NVarchar(30),
Add_Com NVarchar(30),
Add_Amount INTEGER ,
Add_Date NVarchar(30)
);
GO
插入数据如下:
Insert Into Publishbook(Dep_Name,Book_Name,Worksheet,Send_Com,Send_Amount,End_Date,Add_Com,Add_Amount,
Add_Date)
Values(N'广东教育出版社',N'思想品德十一册',N'04Q612',N'省新华书店',N'3000',N'2004-06-25',null,null,null)
GOInsert Into Publishbook(Dep_Name,Book_Name,Worksheet,Send_Com,Send_Amount,End_Date,Add_Com,Add_Amount,
Add_Date)
Values(N'广东教育出版社',N'思想品德第七册',N'04Q625',N'省新华书店',N'4000',N'2004-06-25',null,null,null)
GOInsert Into Publishbook(Dep_Name,Book_Name,Worksheet,Send_Com,Send_Amount,End_Date,Add_Com,Add_Amount,
Add_Date)
Values(N'广东人民出版社',N'开心学英语教学挂图3',N'A2003358',N'教育书店',N'1900',N'2004-08-06',null,null,null)
GO但是当我把所有数据删除,再重新编译,就可以通过,但是在任意执行一个查询时,会出现错误,假设我查询思想品德,出现错误如下:
“思想品德”is not a valid floating poing value;我真是想不懂啊,照这种情况应该是数据库有问题,但是在数据库中,可以执行查询,插入等所有的操作呢。
在Delphi中,我用的是Datamodule窗体,AdoConnection,Adodataset,Database,TTable,Tdataset来进行数据库连接的。在应用窗口中用Checkbox来查询数据的,代码如下:if CB_All.checked then //查询书名
begin
FilterStr:='Book_Name='''+i_AllName.Text+'''' ;
i_AllWorksheet.Clear;
end;
if CB_Allsheet.Checked then //查询工号
begin
FilterStr:='Worksheet='''+i_AllWorksheet.Text+'''';
i_AllName.Clear;
end; if length(FilterStr)>0 then
begin
Filter:=FilterStr;
Filtered:=True;
end
else
Filtered:=False;
Open;
哪位帮我看看啊,急死我了,校长有空就问我:编好没有呀
解决方案 »
- 用Graphics::TBitmap *tmp=new Graphics::TBitmap()生成的位图它的宽高太大会出现内存不足的提示,有办法解决吗?
- 如何通过代码控制StringGrid的Options的属性
- 关于richedit的问题
- COM入门问题大集中,自认为是顶级高手的进!!!
- 求进程管理源代码
- 请问在delphi中包含Shlobj.h的头文件是那个,谢谢!
- 有个看起来象WINDOWS的网站后台,忘记是哪个了
- 送分了,我用INSERT语句加入一条记录并REQUERY后,如何在DBGRID1定位我刚刚插入的数据,最好有简单的办法?
- 如何控制控件的拖动不会拖出窗体外,使得窗体客户区增大?
- 不知错在哪里??????
- 客户端连接问题
- 请问如何获取ListBox中被点击项目的Text?
还有Values(N'广东人民出版社',N'开心学英语教学挂图3',N'A2003358',N'教育书店',N'1900',N'2004-08-06',null,null,null)
GO改成Values(N'广东人民出版社',N'开心学英语教学挂图3',N'A2003358',N'教育书店',N'1900',N'2004-08-06',nil,nil,nil)
GO试试。
with ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add('select * from Publishbook where 1=1');
if CheckBox1.Checked then
Sql.Add('and WorkSheet='+QuotedStr(i_AllWorksheet.Text));
if CheckBox2.Checked then
Sql.Add......
Open;
end;
库结构字段类型 nvarchar(30) 改为varchar(30) sqlserver自动分配空间
2.“思想品德”is not a valid floating poing value;Book_Name NVarchar(30) NOT NULL是字符串类型的如果类似asfloat的一类操作就是上面的错3.
Insert Into Publishbook(Dep_Name,Book_Name,Worksheet,Send_Com,Send_Amount,End_Date,Add_Com,Add_Amount,
Add_Date)
Values(N'广东教育出版社',N'思想品德十一册',N'04Q612',N'省新华书店',N'3000',N'2004-06-25',null,null,null)
不必加N
nchar 是固定长度 Unicode 数据的数据类型,nvarchar 是可变长度 Unicode 数据的数据类型,二者均使用 UNICODE UCS-2 字符集。nchar(n)包含 n 个字符的固定长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。存储大小为 n 字节的两倍。nchar 在 SQL-92 中的同义词为 national char 和 national character。nvarchar(n)包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar 在 SQL-92 中的同义词为 national char varying 和 national character varying。
你的库设计的没问题,应该是程序代码的问题,很可能是filter的问题,建议用sql
包含 Transact-SQL 语句或批处理的 Unicode 字符串,stmt 必须是可以隐式转换为 ntext 的 Unicode 常量或变量。不允许使用更复杂的 Unicode 表达式(例如使用 + 运算符串联两个字符串)。不允许使用字符常量。如果指定常量,则必须使用 N 作为前缀。例如,Unicode 常量 N'sp_who' 是有效的
在TSQL里执行事件查看器,输入的插入指令里的数据无论整数,字符都可以以字符形式插入
如: 1 与 '1' 是一样的,都可以插入的,
但是在DELPHI程序里就不行了,要注意它
就如楼上所说
Send_Amount INTEGER ,你插的是'3000',在查询分析器可以执行
Insert Into Publishbook(Dep_Name,Book_Name,Worksheet,Send_Com,Send_Amount,End_Date,Add_Com,Add_Amount,
Add_Date)
Values('广东教育出版社','思想品德十一册','04Q612','省新华书店',3000,'2004-06-25',null,null,null)
GOInsert Into Publishbook(Dep_Name,Book_Name,Worksheet,Send_Com,Send_Amount,End_Date,Add_Com,Add_Amount,
Add_Date)
Values('广东教育出版社','思想品德第七册','04Q625','省新华书店',4000,'2004-06-25',null,null,null)
GOInsert Into Publishbook(Dep_Name,Book_Name,Worksheet,Send_Com,Send_Amount,End_Date,Add_Com,Add_Amount,
Add_Date)
Values('广东人民出版社','开心学英语教学挂图3','A2003358','教育书店',1900,'2004-08-06',null,null,null)
GO
// SysUtils, Classes, DB, DBTables;uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, ADODB;type
TDataModule1 = class(TDataModule)
Database: TDatabase;
T_Publishbook: TTable;
DS_Publishbook: TDataSource;
T_Receivebook: TTable;
DS_Receivebook: TDataSource;
T_Sendbook: TTable;
DS_Sendbook: TDataSource;
T_Allbook: TTable;
DS_Allbook: TDataSource;
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
private
{ Private declarations }
public
{ Public declarations }
end;var
DataModule1: TDataModule1;implementation{$R *.dfm}end
T_Publishbook: TTable;
T_Receivebook: TTable;
T_Sendbook: TTable;
这些不是ADO的。以下的才是
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
你的基础的东西需要学习
zdq801104(我很笨,但是我不傻!)
呵呵,我是刚学的,没有办法,校长要我编写这个系统呢。连接数据库需要代码的吗,不是用控件就可以了吗?我在书上没有看到需要代码连接的呢。 我的sql语句在查询分析器中已经通过了呀,就是说我的数据库已经完整了。
你应该看一下书了。
OldCreateOrder = False
Left = 246
Top = 99
Height = 494
Width = 469
object ADOConnection1: TADOConnection
Connected = True
ConnectionString =
'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initi' +
'al Catalog=BookStore'
Provider = 'SQLOLEDB.1'
Left = 72
Top = 40
end
object ADODataSet1: TADODataSet
Connection = ADOConnection1
Parameters = <>
Left = 152
Top = 40
end
object T_Allbook: TADOTable
Connection = ADOConnection1
TableName = 'AllBook'
Left = 72
Top = 112
end
object DS_Allbook: TDataSource
DataSet = T_Allbook
Left = 152
Top = 112
end
object DS_Receivebook: TDataSource
DataSet = T_Receivebook
Left = 160
Top = 184
end
object DS_Sendbook: TDataSource
DataSet = T_Sendbook
Left = 160
Top = 256
end
object DS_Publishbook: TDataSource
DataSet = T_Publishbook
Left = 160
Top = 336
end
object T_Receivebook: TADOTable
Left = 72
Top = 184
end
object T_Sendbook: TADOTable
Left = 72
Top = 256
end
object T_Publishbook: TADOTable
Left = 80
Top = 336
end
end可当Datagrid调用Dataset的时候,出现错误:missing connection or missing connection string.
Connection = ADOConnection1
TableName = 'AllBook'
Left = 72
Top = 112
end
object T_Publishbook: TADOTable
Left = 80
Top = 336
end
第一个知道Connection = ADOConnection1怎么第二个就没有了??
TADOTable,TAdOQuery等可以通过指定Connection属性来通过TADOCOnnection到数据库的。
我的msn:[email protected]