㈠ 資料庫編程語言中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的保留字,不要用它做變數之類的事。