㈠ 数据库编程语言中VAL是什么意思
数据库编程语言中VAL表示数值型
㈡ sql数据库中常用的数据类型有什么
一、整数数据类型:整数数据类型是最常用的数据类型之一。
1、INT(INTEGER)
INT (或INTEGER)数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之间的所有正负整数。每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。
2、SMALLINT
SMALLINT 数据类型存储从-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之间的所有正负整数。每个SMALLINT 类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。
二、浮点数据类型:浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server 中采用上舍入(Round up 或称为只入不舍)方式进行存储。
1、REAL数据类型
REAL数据类型可精确到第7 位小数,其范围为从-3.40E -38 到3.40E +38。 每个REAL类型的数据占用4 个字节的存储空间。
2、FLOAT
FLOAT数据类型可精确到第15 位小数,其范围为从-1.79E -308 到1.79E +308。 每个FLOAT 类型的数据占用8 个字节的存储空间。 FLOAT数据类型可写为FLOAT[ n ]的形式。n 指定FLOAT 数据的精度。n 为1到15 之间的整数值。
当n 取1 到7 时,实际上是定义了一个REAL 类型的数据,系统用4 个字节存储它;当n 取8 到15 时,系统认为其是FLOAT 类型,用8 个字节存储它。
三、二进制数据类型
1、BINARY
BINARY 数据类型用于存储二进制数据。其定义形式为BINARY( n), n 表示数据的长度,取值为1 到8000 。在使用时必须指定BINARY 类型数据的大小,至少应为1 个字节。BINARY 类型数据占用n+4 个字节的存储空间。
在输入数据时必须在数据前加上字符“0X” 作为二进制标识,如:要输入“abc ”则应输入“0xabc ”。若输入的数据过长将会截掉其超出部分。若输入的数据位数为奇数,则会在起始符号“0X ”后添加一个0,如上述的“0xabc ”会被系统自动变为“0x0abc”。
2、VARBINARY
VARBINARY数据类型的定义形式为VARBINARY(n)。 它与BINARY 类型相似,n 的取值也为1 到8000, 若输入的数据过长,将会截掉其超出部分。
不同的是VARBINARY数据类型具有变动长度的特性,因为VARBINARY数据类型的存储长度为实际数值长度+4个字节。当BINARY数据类型允许NULL 值时,将被视为VARBINARY数据类型。
四、逻辑数据类型
1、BIT:BIT数据类型占用1 个字节的存储空间,其值为0 或1 。如果输入0 或1 以外的值,将被视为1。 BIT 类型不能定义为NULL 值(所谓NULL 值是指空值或无意义的值)。
五、字符数据类型:字符数据类型是使用最多的数据类型。它可以用来存储各种字母、数字符号、特殊符号。一般情况下,使用字符类型数据时须在其前后加上单引号’或双引号” 。
1、CHAR
CHAR 数据类型的定义形式为CHAR[ (n) ]。 以CHAR 类型存储的每个字符和符号占一个字节的存储空间。n 表示所有字符所占的存储空间,n 的取值为1 到8000, 即可容纳8000 个ANSI 字符。
若不指定n 值,则系统默认值为1。 若输入数据的字符数小于n,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。
(2)数据库varInteger扩展阅读:
SQL包括了所有对数据库的操作,主要是由4个部分组成:
1、数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
2、数据操纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。
3、数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。
4、嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。
㈢ delphi关于mysql数据库的问题
不好意思,我不得不说,您的程序真是烂到家了。eof是控制台程序用于判断文件游标是否在末尾的变量,不报错才怪。另外查询出来的数据如果不止一个,你拿什么显示?
var
i: Integer;
begin
adoquery1.sql.Clear;
if radiobutton1.checked then
begin
adoquery1.sql.add('select * from USERPROFILE where USERID='''+edit1.text+'''');
adoquery1.open;
if adoquery1.RecordCount > 0 then
begin
for i := 0 to adoquery1.RecordCount - 1 do
begin
我不知道你用什么显示,你自己写吧...
end;
end
else begin
showmessage('用户编号输入有误,请从新输入');
edit1.SetFocus ;
end;
end;
end;
㈣ delphi数据库问题 Access数据库表复制另一个表的数据 (表数据复制)谢谢
办法有好几个,这里说两个:
1、直接复制粘贴法,如果你的两个表再同一数据库中,直接复制粘贴就行了,先把那个空表删除,再粘贴那个有数据的表,粘贴命令之后,ACCESS会提示你给粘贴后表取名的。如果两个表不在一个数据库中,那就得打开两个数据库,有时候ACCESS不让你同时打开两个ACCESS,但反复多打开几次就可以打开了。打开之后,再进行复制粘贴操作。
2、如果说这种操作是经常的,也就是要提供给软件用户操作的,那就只有通过DELPHI代码来实现了。
用代码进行复制,可以直接用SQL命令进行表的复制和粘贴。但具体的SQL命令,我不太清楚。
就按你说用ADO组件来进行复制
首先确定一个数据库还是两个,如果两个表在同一数据库中,这样只要一个数据库连接组件TADOConnection就行了,如果两个表是在不同的数据库中,那最好用两个TADOConnection连接组件。一个用于连接A数据库,另一个用连接B数据库。
再放两个TADODataSet组件,我习惯使用ADODataSet组件,根本不用TADOQuery和TADOTable因为ADODataSet兼有这两个组件的全部功能。放好这四个组件后,再做好连接的设置。
然后写代码:
㈤ 用Delphi编写数据报存储控件
一 概述在用Delphi编写数据库程序时 经常涉及到数据的导入和导出操作 如 将大型数据库中的数据存储为便携文件 以便于出外阅读 将存储在文件中的数据信息 导入到另外的数据库中 而且 通过将数据库中的数据存储为数据文件 更便于程序内部和程序间交换数据 避免通过内存交换数据的烦琐步骤 例如在笔者编写的通用报表程序中即以该控件作为数据信息传递的载体 二 基本思路作为数据报存储控件 应能够存储和读入数据集的基本信息(如 字段名 字段的显示名称 字段的数据类型 记录数 字段数 指定记录指定字段的当前值等) 应能够提供较好的封装特性 以便于使用 基于此 笔者利用Delphi 面向对象的特点 设计开发了数据报存储控件 三 实现方法编写如下代码单元 unit IbDbFile;interfaceUses Windows SysUtils Classes Forms Db DbTables Dialogs;ConstFlag = 数据报 吉星软件工作室 ;TypeTDsException = Class(Exception);TIbStorage = class(TComponent)privateFRptTitle: string; //存储数据报说明FPageHead: string; //页头说明FPageFoot: string; //爷脚说明FFieldNames: TStrings; //字段名表FStreamIndex: TStrings; //字段索引FStream: TStream; //存储字段内容的流FFieldCount: Integer; //字段数FRecordCount: Integer; //记录数FOpenFlag: Boolean; //流是否创建标志protectedprocere Reset; //复位 清空流的内容procere SaveHead(ADataSet: TDataSet; Fp: TStream); //存储报表头信息procere LoadTableToStream(ADataSet: TDataSet); //存储记录数据procere IndexFields(ADataSet: TDataSet); //将数据集的字段名保存到列表中procere GetHead(Fp: TFileStream); //保存报表头信息procere GetIndex(Fp: TFileStream); //建立记录流索引procere GetFieldNames(Fp: TFileStream); //从流中读入字段名表function GetFieldName(AIndex: Integer): string; //取得字段名称function GetFieldDataType(AIndex: Integer): TFieldType;function GetDisplayLabel(AIndex: Integer): string; //取得字段显示名称procere SaveFieldToStream(AStream: TStream; AField: TField); //将字段存入流中function GetFieldValue(ARecordNo FieldNo: Integer): string; //字段的内容publicConstructor Create(AOwner: TComponent);Destructor Destroy; override;procere Open; //创建流以准备存储数据procere SaveToFile(ADataSet: TDataSet; AFileName: string); //存储方法procere LoadFromFile(AFileName: string); //装入数据procere FieldStream(ARecordNo FieldNo: Integer; var AStream: TStream);property FieldNames[Index: Integer]: string read GetFieldName; //字段名property FieldDataTypes[Index: Integer]: TFieldType read GetFieldDataType;property FieldDisplayLabels[Index: Integer]: string read GetDisplayLabel;property Fields[RecNo FieldIndex: Integer]: string read GetFieldValue;//property FieldStreams[RecNo FieldIndex: Integer]: TStream read GetFieldStream;property RecordCount: Integer read FRecordCount write FRecordCount;property FieldCount: Integer read FFieldCount write FFieldCount;publishedproperty RptTitle: string read FRptTitle write FRptTitle;property PageHead: string read FPageHead write FPageHead;property PageFoot: string read FPageFoot write FPageFoot;end;function ReadAChar(AStream: TStream): Char;function ReadAStr(AStream: TStream): string;function ReadBStr(AStream: TStream; Size: Integer): string;function ReadAInteger(AStream: TStream): Integer;procere WriteAStr(AStream: TStream; AStr: string);procere WriteBStr(AStream: TStream; AStr: string);procere WriteAInteger(AStream: TStream; AInteger: Integer);procere Register;implementationprocere Register;beginRegisterComponents( Data Access [TIbStorage]);end;function ReadAChar(AStream: TStream): Char;VarAChar: Char;beginAStream Read(AChar );Result := AChar;end;function ReadAStr(AStream: TStream): string;varStr: String;C : Char;beginStr := ;C := ReadAChar(AStream);While C <> # dobeginStr := Str + C;C := ReadAChar(AStream);end;Result := Str;end;function ReadBStr(AStream: TStream; Size: Integer): string;varStr: String;C : Char;I : Integer;beginStr := ;For I := to Size dobeginC := ReadAChar(AStream);Str := Str + C;end;Result := Str;end;function ReadAInteger(AStream: TStream): Integer;varStr: String;C : Char;beginResult := MaxInt;Str := ;C := ReadAChar(AStream);While C <> # dobeginStr := Str + C;C := ReadAChar(AStream);end;tryResult := StrToInt(Str);exceptApplication MessageBox( 当前字符串无法转换为整数! 错误 Mb_Ok + Mb_IconError);end;end;procere WriteAStr(AStream: TStream; AStr: string);beginAStream Write(Pointer(AStr)^ Length(AStr) + );end;procere WriteBStr(AStream: TStream; AStr: string);beginAStream Write(Pointer(AStr)^ Length(AStr));end;procere WriteAInteger(AStream: TStream; AInteger: Integer);varS : string;beginS := IntToStr(AInteger);WriteAstr(AStream S);end;Constructor TIbStorage Create(AOwner: TComponent);begininherited Create(AOwner);FOpenFlag := False; //确定流是否创建的标志end;Destructor TIbStorage Destroy;beginif FOpenFlag thenbeginFStream Free;FStreamIndex Free;FFieldNames Free;end;inherited Destroy;end;procere TIbStorage Open;beginFOpenFlag := True;FStream := TMemoryStream Create;FStreamIndex := TStringList Create;FFieldNames := TStringList Create;Reset;end;procere TIbStorage Reset; //复位beginif FOpenFlag thenbeginFFieldNames Clear;FStreamIndex Clear;FStream Size := ;FRptTitle := ;FPageHead := ;FPageFoot := ;FFieldCount := ;FRecordCount := ;end;end;// 保存数据部分procere TIbStorage SaveToFile(ADataSet: TDataSet; AFileName: string);varFp: TFileStream;I : Integer;Ch: Char;T T : TDateTime;Str: string;beginif Not FOpenFlag thenbeginshowmessage( 对象没有打开 );Exit;end;tryif FileExists(AFileName) then DeleteFile(AFileName);Fp := TFileStream Create(AFileName fmCreate);Reset;SaveHead(ADataSet Fp); //保存头部信息 附加说明IndexFields(ADataSet); //将数据集的字段信息保存到FFieldNameLoadTableToStream(ADataSet); //保存数据集的数据信息WriteAStr(Fp FFieldNames Text); //存储字段名信息Ch := @ ;Fp Write(Ch );WriteAStr(Fp FStreamIndex Text); //存储字段索引列表Ch := @ ;Fp Write(Ch );Fp CopyFrom(FStream );finallyFp Free;end;end;procere TIbStorage SaveHead(ADataSet: TDataSet; Fp: TStream);VarI : Integer;Ch: Char;beginif Not ADataSet Active then ADataSet Active := True;WriteAStr(Fp Flag);WriteAStr(Fp FRptTitle);WriteAStr(Fp FPageHead);WriteAStr(Fp FPag lishixin/Article/program/Delphi/201311/8408
㈥ 数据库字段存入数组
select 字段名 from 表名 into array a
㈦ delphi 数据库字段赋值
身份证判断男女的条件:倒数第二位是奇数的是男性,是偶数的是女性。
我们要做的第一步就是把倒数第二位取出来,然后赋值给一个变量。
procere TForm1.Button1Click(Sender: TObject);
var sex:integer;
begin
sex:=strtoint(Copy(Dbedit3.text,17,1)); //取身份证第17位,即倒数第二位
if sex mod 2=1 then
begin
Dbedit4.text:='男'; //对2取模,余1则表示是奇数,男性
end
else Dbedit4.text:='女';
end;
在这里取身份证号倒数第二位时用到一个函数,Copy(字符串名,从第几位开始,取几位)
㈧ sql 数据库查询怎样设置参数
直接在程序里写成变量就可以了,变量要有赋值,否则会出错
例如VB里这样写
SQL = "select * from proct where ID='" & Trim(Text1.Text) & "'"
rst4.Open SQL, con1, 1, 1
条件表示ID=Text1的Text的值
㈨ access数据库中表中字段前的黄色符号代表什么
你说的是数据表设计界面上,字段左边一个钥匙图样式的黄色标志吧?那是主键的意思。
㈩ delphi中如何取得集合类型的下标或者如何表示成integer。
用强制类型转换。
示例代码如下:
procere TForm1.Button1Click(Sender: TObject);
type
test=set of (as1,sa,bs,cs);
var
i:integer;
asss:test;
begin
asss:=Asss+[cs];
if cs in asss then
begin
i:=Integer(cs);
Memo1.Lines.Add(IntToStr(i));
end;
end;
顺便说一下,as是Delphi的保留字,不要用它做变量之类的事。