PostgreSQL: kèo bóng đá hôm | |||
---|---|---|---|
prev | UP | Chương 34.ECPG- nhúngSQLtrong C | Tiếp theo |
inPhần 34.3Bạn đã thấy cách bạn có thể thực hiện kèo tỷ số bóng đá euro hôm nay câu lệnh SQL từ chương trình SQL nhúng. Một số trong kèo tỷ số bóng đá euro hôm nay câu lệnh chỉ được sử dụng kèo tỷ số bóng đá euro hôm nay giá trị cố định và không cung cấp một cách để chèn kèo tỷ số bóng đá euro hôm nay giá trị do người dùng cung cấp vào kèo tỷ số bóng đá euro hôm nay câu lệnh hoặc để chương trình xử lý kèo tỷ số bóng đá euro hôm nay giá trị được truy vấn trả về.kèo tỷ số bóng đá euro hôm nay chủ. Trong một chương trình SQL nhúng, chúng tôi coi kèo tỷ số bóng đá euro hôm nay câu lệnh SQL làKháchTrong mã chương trình C làNgôn ngữ máy chủ. Do đó, kèo tỷ số bóng đá euro hôm nay biến của chương trình C được gọi làkèo tỷ số bóng đá euro hôm nay chủ.
11013_11140Phần 34.7.
Truyền dữ liệu giữa chương trình C và kèo tỷ số bóng đá euro hôm nay câu lệnh SQL đặc biệt đơn giản trong SQL nhúng. Thay vì để chương trình dán dữ liệu vào câu lệnh, đòi hỏi kèo tỷ số bóng đá euro hôm nay biến chứng khác nhau, chẳng hạn như trích dẫn đúng giá trị, bạn chỉ có thể viết tên của biến C vào câu lệnh SQL, được đặt trước bởi một dấu hai chấm.
EXEC SQL chèn vào kèo tỷ số bóng đá euro hôm nay giá trị một số (: v1, 'foo',: v2);
Câu lệnh này đề cập đến hai kèo tỷ số bóng đá euro hôm nay C có tênV1vàV2Và cũng sử dụng một chuỗi SQL thông thường theo nghĩa đen, để minh họa rằng bạn không bị hạn chế sử dụng một loại dữ liệu hoặc loại khác.
11998_12120
Để chuyển dữ liệu từ chương trình sang cơ sở dữ liệu, ví dụ như kèo tỷ số bóng đá euro hôm nay tham số trong truy vấn hoặc chuyển dữ liệu từ cơ sở dữ liệu trở lại chương trình, kèo tỷ số bóng đá euro hôm nay biến C dự định chứa dữ liệu này cần được khai báo trong kèo tỷ số bóng đá euro hôm nay phần được đánh dấu đặc biệt, do đó
Phần này bắt đầu bằng:
EXEC SQL BẮT ĐẦU TUYỆT VỜI;
và kết thúc bằng:
phần khai báo kết thúc SQL;
Giữa kèo tỷ số bóng đá euro hôm nay dòng đó, phải có kèo tỷ số bóng đá euro hôm nay khai báo biến C bình thường, chẳng hạn như:
int x = 4;
Như bạn có thể thấy, bạn có thể tùy chọn gán một giá trị ban đầu cho kèo tỷ số bóng đá euro hôm nay. Phạm vi của kèo tỷ số bóng đá euro hôm nay được xác định bởi vị trí của phần khai báo trong chương trình.
exec sql int i = 4;
Bạn có thể có nhiều phần khai báo trong một chương trình tùy thích.
kèo tỷ số bóng đá euro hôm nay khai báo cũng được lặp lại với tệp đầu ra dưới dạng kèo tỷ số bóng đá euro hôm nay biến C bình thường, do đó không cần phải khai báo chúng một lần nữa. kèo tỷ số bóng đá euro hôm nay biến không được sử dụng trong kèo tỷ số bóng đá euro hôm nay lệnh SQL có thể được khai báo bình thường bên ngoài kèo tỷ số bóng đá euro hôm nay phần đặc biệt này.
Định nghĩa về cấu trúc hoặc liên kết cũng phải được liệt kê bên trong Akhai báoPhần. Nếu không thì bộ tiền xử lý không thể xử lý kèo tỷ số bóng đá euro hôm nay loại này vì nó không biết định nghĩa.
Bây giờ bạn sẽ có thể chuyển dữ liệu được tạo bởi chương trình của bạn vào lệnh SQL. Nhưng làm thế nào để bạn lấy lại kết quả của một truy vấn?ChọnvàFetch. kèo tỷ số bóng đá euro hôm nay lệnh này có một đặc biệtthànhmệnh đề chỉ định kèo tỷ số bóng đá euro hôm nay biến máy chủ nào mà kèo tỷ số bóng đá euro hôm nay giá trị được truy xuất sẽ được lưu trữ trong.Chọnđược sử dụng cho một truy vấn chỉ trả về hàng đơn vàFetchđược sử dụng cho một truy vấn trả về nhiều hàng, sử dụng con trỏ.
Đây là một ví dụ:
/*
SOthànhmệnh đề xuất hiện giữa danh sách chọn vàtừmệnh đề. Số lượng phần tử trong danh sách chọn và danh sách sauthành(còn được gọi là danh sách đích) phải bằng nhau.
Đây là một ví dụ sử dụng lệnhFetch:
EXEC SQL BẮT ĐẦU phần khai báo;
ở đâythànhmệnh đề xuất hiện sau tất cả kèo tỷ số bóng đá euro hôm nay mệnh đề bình thường.
Khi kèo tỷ số bóng đá euro hôm nay ứng dụng ECPG trao đổi giá trị giữa máy chủ PostgreSQL và ứng dụng C, chẳng hạn như khi truy xuất kết quả truy vấn từ máy chủ hoặc thực thi kèo tỷ số bóng đá euro hôm nay câu lệnh SQL với kèo tỷ số bóng đá euro hôm nay tham số đầu vào, kèo tỷ số bóng đá euro hôm nay giá trị cần được chuyển đổi giữa kèo tỷ số bóng đá euro hôm nay loại dữ liệu PostgreSQL và kèo tỷ số bóng đá euro hôm nay loại thay đổi ngôn ngữ (C). Một trong những điểm chính của ECPG là nó tự động chăm sóc điều này trong hầu hết kèo tỷ số bóng đá euro hôm nay trường hợp.
Về mặt này, có hai loại dữ liệu: một số loại dữ liệu PostgreSQL đơn giản, chẳng hạn nhưSố nguyênvàText, có thể được đọc và viết trực tiếp bởi ứng dụng. kèo tỷ số bóng đá euro hôm nay loại dữ liệu PostgreSQL khác, chẳng hạn nhưdấu thời gianvàSốChỉ có thể được truy cập thông qua kèo tỷ số bóng đá euro hôm nay chức năng thư viện đặc biệt; nhìn thấyPhần 34.4.4.2.
Bảng 34-1hiển thị kèo tỷ số bóng đá euro hôm nay loại dữ liệu PostgreSQL nào tương ứng với kèo tỷ số bóng đá euro hôm nay loại dữ liệu C. Khi bạn muốn gửi hoặc nhận giá trị của một loại dữ liệu PostgreSQL đã cho, bạn nên khai báo một biến C của loại dữ liệu C tương ứng trong phần khai báo.
Bảng 34-1. Ánh xạ giữa kèo tỷ số bóng đá euro hôm nay loại dữ liệu PostgreSQL và kèo tỷ số bóng đá euro hôm nay loại biến C
Loại dữ liệu PostgreSQL | Loại kèo tỷ số bóng đá euro hôm nay chủ |
---|---|
smallint | ngắn |
Số nguyên | int |
Bigint | dài int |
thập phân | thập phân[A] |
Số | Số[A] |
Real | float |
Double Precision | Double |
SmallSerial | ngắn |
nối tiếp | int |
BigSerial | dài int |
oid | unsign int |
ký tự (n), Varchar (n), Text | char [n+1], 18620_18630n+1][B] |
tên | char [tên được đặt tên] |
Dấu thời gian | Dấu thời gian[A] |
Khoảng | Khoảng[A] |
ngày | ngày[A] |
Boolean | bool[C] |
ghi chú: a.Loại này chỉ có thể được truy cập thông qua kèo tỷ số bóng đá euro hôm nay chức năng thư viện đặc biệt; nhìn thấyPhần 34.4.4.2. b.được khai báo trongecpglib.h c.được khai báo trongecpglib.hnếu không bản địa |
Để xử lý kèo tỷ số bóng đá euro hôm nay loại dữ liệu chuỗi ký tự SQL, chẳng hạn nhưVarcharvàText, Có hai cách có thể để khai báo kèo tỷ số bóng đá euro hôm nay biến máy chủ.
Một cách đang sử dụngchar [], một mảngChar, là cách phổ kèo tỷ số bóng đá euro hôm nay nhất để xử lý dữ liệu ký tự trong C.
EXEC SQL bắt đầu khai báo;
Lưu ý rằng bạn phải tự mình chăm sóc độ dài. Nếu bạn sử dụng kèo tỷ số bóng đá euro hôm nay chủ này làm biến mục tiêu của truy vấn trả về chuỗi có hơn 49 ký tự, sẽ xảy ra tràn bộ đệm.
Cách khác là sử dụngVarcharLoại, là loại đặc biệt được cung cấp bởi ECPG. Định nghĩa trên một mảng loạiVarcharđược chuyển đổi thành một tênstructĐối với mỗi kèo tỷ số bóng đá euro hôm nay. Một tuyên bố như:
Varchar var [180];
được chuyển đổi thành:
struct varchar_var int len; Char Arr [180];
Thành viênmảngHosts chuỗi bao gồm một byte kết thúc bằng không. Do đó, để lưu trữ một chuỗi trong mộtVarcharkèo tỷ số bóng đá euro hôm nay chủ, kèo tỷ số bóng đá euro hôm nay chủ phải được khai báo với độ dài bao gồm cả bộ kết thúc byte bằng 0. Thành viênlengiữ độ dài của chuỗi được lưu trữ trongmảngKhông có byte chấm dứt. Khi một kèo tỷ số bóng đá euro hôm nay chủ được sử dụng làm đầu vào cho truy vấn, nếustrlen (mảng)vàlenlà khác nhau, cái ngắn hơn được sử dụng.
Varcharcó thể được viết bằng chữ hoa hoặc chữ thường, nhưng không phải trong trường hợp hỗn hợp.
CharvàVarcharBiến máy chủ cũng có thể giữ kèo tỷ số bóng đá euro hôm nay giá trị của kèo tỷ số bóng đá euro hôm nay loại SQL khác, sẽ được lưu trữ trong kèo tỷ số bóng đá euro hôm nay biểu mẫu chuỗi của chúng.
ECPG chứa một số loại đặc biệt giúp bạn tương tác dễ dàng với một số loại dữ liệu đặc biệt từ máy chủ PostgreSQL. Cụ thể, nó đã triển khai hỗ trợ choSố, thập phân, ngày, Dấu thời gianvàKhoảngLoại. kèo tỷ số bóng đá euro hôm nay loại dữ liệu này không thể được ánh xạ một cách hữu ích đến kèo tỷ số bóng đá euro hôm nay loại biến chủ nguyên thủy (chẳng hạn nhưint, dài inthoặcchar []), bởi vì chúng có cấu trúc bên trong phức tạp. kèo tỷ số bóng đá euro hôm nay ứng dụng liên quan đến kèo tỷ số bóng đá euro hôm nay loại này bằng cách khai báo kèo tỷ số bóng đá euro hôm nay biến máy chủ theo kèo tỷ số bóng đá euro hôm nay loại đặc biệt và truy cập chúng bằng cách sử dụng kèo tỷ số bóng đá euro hôm nay chức năng trong thư viện PGTYPES.Phần 34.6Chứa kèo tỷ số bóng đá euro hôm nay chức năng cơ bản để xử lý kèo tỷ số bóng đá euro hôm nay loại đó, do đó bạn không cần phải gửi truy vấn đến máy chủ SQL chỉ để thêm một khoảng thời gian vào dấu thời gian chẳng hạn.
kèo tỷ số bóng đá euro hôm nay tiểu mục sau mô tả kèo tỷ số bóng đá euro hôm nay loại dữ liệu đặc biệt này. Để biết thêm chi tiết về kèo tỷ số bóng đá euro hôm nay chức năng thư viện PGTYPES, xemPhần 34.6.
Đây là một mẫu để xử lýDấu thời giankèo tỷ số bóng đá euro hôm nay trong ứng dụng máy chủ ECPG.
Đầu tiên, chương trình phải bao gồm tệp tiêu đề choDấu thời gianloại:
#include <pgtypes_timestamp.h
Tiếp theo, khai báo kèo tỷ số bóng đá euro hôm nay chủ dưới dạng loạiDấu thời gianTrong phần khai báo:
EXEC SQL BẮT ĐẦU phần khai báo;
Và sau khi đọc một giá trị vào biến máy chủ, hãy xử lý nó bằng kèo tỷ số bóng đá euro hôm nay chức năng thư viện PGTYPES. Trong ví dụ sau,Dấu thời gianGiá trị được chuyển đổi thành mẫu văn bản (ASCII) vớipgtypestimestamp_to_asc ()
chức năng:
EXEC SQL CHỌN NGAY BÂY GIỜ () :: Dấu thời gian vào: TS;
Ví dụ này sẽ hiển thị một số kết quả như sau:
ts = 2010-06-27 18: 03: 56.949343
Ngoài ra, loại ngày có thể được xử lý theo cùng một cách. Chương trình phải bao gồmpgtypes_date.h, khai báo kèo tỷ số bóng đá euro hôm nay chủ dưới dạng loại ngày và chuyển đổi giá trị ngày thành biểu mẫu văn bản bằng cách sử dụngpgtypesdate_to_asc ()
Hàm. Để biết thêm chi tiết về kèo tỷ số bóng đá euro hôm nay chức năng thư viện PGTYPES, xemPhần 34.6.
Xử lý củaKhoảngLoại cũng tương tự nhưDấu thời gianvàngàyLoại. Tuy nhiên, yêu cầu phân bổ bộ nhớ cho mộtIntervalLoại giá trị rõ ràng. Nói cách khác, không gian bộ nhớ cho kèo tỷ số bóng đá euro hôm nay phải được phân bổ trong bộ nhớ heap, không phải trong bộ nhớ ngăn xếp.
Đây là một chương trình ví dụ:
#include <stdio.h
Xử lýSốvàthập phânkèo tỷ số bóng đá euro hôm nay loại tương tự nhưKhoảngLoại: Nó yêu cầu xác định một con trỏ, phân bổ một số không gian bộ nhớ trên đống và truy cập biến bằng kèo tỷ số bóng đá euro hôm nay hàm thư viện PGTYPES. Để biết thêm chi tiết về kèo tỷ số bóng đá euro hôm nay chức năng thư viện PGTYPES, xemPhần 34.6.
Không có chức năng nào được cung cấp cụ thể chothập phânLoại. Một ứng dụng phải chuyển đổi nó thànhSốkèo tỷ số bóng đá euro hôm nay sử dụng chức năng thư viện PGTYPES để thực hiện xử lý thêm.
Đây là một ví dụ về xử lý chương trìnhSốvàthập phânLoại kèo tỷ số bóng đá euro hôm nay.
#include <stdio.h
Là một biến máy chủ, bạn cũng có thể sử dụng kèo tỷ số bóng đá euro hôm nay mảng, typedefs, structs và con trỏ.
Có hai trường hợp sử dụng cho kèo tỷ số bóng đá euro hôm nay mảng làm biến máy chủ. Đầu tiên là một cách để lưu trữ một số chuỗi văn bản trongchar []hoặcVarchar [], như được giải thích trongPhần 34.4.4.1. Trường hợp sử dụng thứ hai là lấy nhiều hàng từ kết quả truy vấn mà không cần sử dụng con trỏ.Fetchlệnh. Nhưng với kèo tỷ số bóng đá euro hôm nay biến máy chủ mảng, có thể nhận được nhiều hàng cùng một lúc.
Ví dụ sau quétpg_databaseBảng hệ thống và hiển thị tất cả kèo tỷ số bóng đá euro hôm nay OID và tên của cơ sở dữ liệu có sẵn:
int
Ví dụ này hiển thị kết quả sau. (kèo tỷ số bóng đá euro hôm nay giá trị chính xác phụ thuộc vào hoàn cảnh cục bộ.)
oid = 1, dbname = template1
Một cấu trúc có tên thành viên khớp với tên cột của kết quả truy vấn, có thể được sử dụng để truy xuất nhiều cột cùng một lúc. Cấu trúc cho phép xử lý nhiều giá trị cột trong một kèo tỷ số bóng đá euro hôm nay chủ.
Ví dụ sau lấy OIDS, tên và kích thước của cơ sở dữ liệu có sẵn từpg_databaseBảng hệ thống và sử dụngpg_database_size ()
Hàm. Trong ví dụ này, một kèo tỷ số bóng đá euro hôm nay cấu trúcdbinfo_tVới kèo tỷ số bóng đá euro hôm nay thành viên có tên khớp với từng cột trongChọnKết quả được sử dụng để truy xuất một hàng kết quả mà không đặt nhiều kèo tỷ số bóng đá euro hôm nay chủ vàoFetchcâu lệnh.
EXEC SQL bắt đầu phần khai báo;
Ví dụ này hiển thị kết quả sau. (kèo tỷ số bóng đá euro hôm nay giá trị chính xác phụ thuộc vào hoàn cảnh cục bộ.)
oid = 1, datName = template1, size = 4324580
kèo tỷ số bóng đá euro hôm nay chủ cấu trúc"hấp thụ"Nhiều cột như cấu trúc như kèo tỷ số bóng đá euro hôm nay trường. kèo tỷ số bóng đá euro hôm nay cột bổ sung có thể được gán cho kèo tỷ số bóng đá euro hôm nay biến máy chủ khác.sizekèo tỷ số bóng đá euro hôm nay bên ngoài cấu trúc:
EXEC SQL bắt đầu phần khai báo;
Sử dụngtypedefTừ khóa để ánh xạ kèo tỷ số bóng đá euro hôm nay loại mới thành kèo tỷ số bóng đá euro hôm nay loại đã có.
EXEC SQL bắt đầu phần khai báo;
Lưu ý rằng bạn cũng có thể sử dụng:
EXEC SQL Loại serial_t dài;
Tuyên bố này không cần phải là một phần của phần khai báo.
Bạn có thể khai báo con trỏ đến kèo tỷ số bóng đá euro hôm nay loại phổ biến nhất. Tuy nhiên, lưu ý rằng bạn không thể sử dụng con trỏ làm biến mục tiêu của kèo tỷ số bóng đá euro hôm nay truy vấn mà không cần phân bổ tự động.Phần 34.7Để biết thêm thông tin về phân bổ tự động.
EXEC SQL BẮT ĐẦU phần khai báo;
Phần này chứa thông tin về cách xử lý kèo tỷ số bóng đá euro hôm nay loại dữ liệu cấp độ SQL không xác định và người dùng trong kèo tỷ số bóng đá euro hôm nay ứng dụng ECPG. Lưu ý rằng điều này khác biệt với việc xử lý kèo tỷ số bóng đá euro hôm nay biến máy chủ của kèo tỷ số bóng đá euro hôm nay loại không đơn trùng, được mô tả trong phần trước.
Mảng cấp độ SQL đa chiều không được hỗ trợ trực tiếp trong ECPG. kèo tỷ số bóng đá euro hôm nay mảng cấp độ SQL một chiều có thể được ánh xạ vào kèo tỷ số bóng đá euro hôm nay biến máy chủ c mảng C và ngược lại.
Nếu truy vấn truy cậpphần tửcủa một mảng một cách riêng biệt, sau đó điều này tránh việc sử dụng kèo tỷ số bóng đá euro hôm nay mảng trong ECPG. Sau đó, một biến máy chủ với một loại có thể được ánh xạ tới loại phần tử nên được sử dụng.Số nguyên, một kèo tỷ số bóng đá euro hôm nay chủ của loạiintcó thể được sử dụng. Ngoài ra nếu loại phần tử làVarcharhoặcText, một kèo tỷ số bóng đá euro hôm nay chủ của loạichar []hoặcVarchar []có thể được sử dụng.
Đây là một ví dụ. Giả sử bảng sau:
Tạo bảng T3 (
Chương trình ví dụ sau lấy phần tử thứ 4 của mảng và lưu trữ nó vào một kèo tỷ số bóng đá euro hôm nay chủ của loạiint:
EXEC SQL BẮT ĐẦU phần khai báo;
Ví dụ này hiển thị kết quả sau:
ii = 4
36726_36932
EXEC SQL BẮT ĐẦU phần khai báo;
Lưu ý lại rằng
EXEC SQL bắt đầu phần khai báo;
Sẽ không hoạt động chính xác trong trường hợp này, vì bạn không thể ánh xạ một cột loại mảng đến một kèo tỷ số bóng đá euro hôm nay chủ mảng trực tiếp.
Một cách giải quyết khác là lưu trữ kèo tỷ số bóng đá euro hôm nay mảng trong biểu diễn chuỗi bên ngoài của chúng trong kèo tỷ số bóng đá euro hôm nay biến máy chủ của loạichar []hoặcVarchar []. Để biết thêm chi tiết về đại diện này, xemPhần 8.15.2. Lưu ý rằng điều này có nghĩa là mảng không thể được truy cập một cách tự nhiên dưới dạng một mảng trong chương trình máy chủ (mà không cần xử lý thêm để phân tích biểu diễn văn bản).
kèo tỷ số bóng đá euro hôm nay loại tổng hợp không được hỗ trợ trực tiếp trong ECPG, nhưng có thể giải quyết dễ dàng. kèo tỷ số bóng đá euro hôm nay cách giải quyết có sẵn tương tự như kèo tỷ số bóng đá euro hôm nay cách được mô tả cho kèo tỷ số bóng đá euro hôm nay mảng ở trên: hoặc truy cập mỗi thuộc tính riêng biệt hoặc sử dụng biểu diễn chuỗi bên ngoài.
Đối với kèo tỷ số bóng đá euro hôm nay ví dụ sau, giả sử loại và bảng sau:
Tạo loại comp_t AS (Intval Integer, TextVal Varchar (32));
Giải pháp rõ ràng nhất là truy cập riêng từng thuộc tính. Chương trình sau lấy dữ liệu từ bảng ví dụ bằng cách chọn từng thuộc tính của loạicomp_triêng biệt:
EXEC SQL BẮT ĐẦU phần khai báo;
Để tăng cường ví dụ này, kèo tỷ số bóng đá euro hôm nay biến máy chủ để lưu trữ kèo tỷ số bóng đá euro hôm nay giá trị trongFetchLệnh có thể được thu thập thành một cấu trúc. Để biết thêm chi tiết về kèo tỷ số bóng đá euro hôm nay chủ trong mẫu cấu trúc, xemPhần 34.4.4.3.2. Để chuyển sang cấu trúc, ví dụ có thể được sửa đổi như dưới đây.intvalvàTextVal, trở thành thành viên củacomp_tCấu trúc và cấu trúc được chỉ định trênFetchlệnh.
EXEC SQL bắt đầu khai báo;
Mặc dù cấu trúc được sử dụng trongFetchlệnh, tên thuộc tính trongChọnmệnh đề được chỉ định từng cái một. Điều này có thể được tăng cường bằng cách sử dụng*Để yêu cầu tất cả kèo tỷ số bóng đá euro hôm nay thuộc tính của giá trị loại tổng hợp.
...
theo cách này, kèo tỷ số bóng đá euro hôm nay loại tổng hợp có thể được ánh xạ vào kèo tỷ số bóng đá euro hôm nay cấu trúc gần như liền mạch, mặc dù ECPG không hiểu loại tổng hợp.
Cuối cùng, cũng có thể lưu trữ kèo tỷ số bóng đá euro hôm nay giá trị loại tổng hợp trong biểu diễn chuỗi bên ngoài của chúng trong kèo tỷ số bóng đá euro hôm nay biến máy chủ của loạichar []hoặcVarchar []. Nhưng theo cách đó, không dễ dàng truy cập kèo tỷ số bóng đá euro hôm nay trường của giá trị từ chương trình máy chủ.
kèo tỷ số bóng đá euro hôm nay loại cơ sở do người dùng mới xác định không được ECPG hỗ trợ trực tiếp. Bạn có thể sử dụng biểu diễn chuỗi bên ngoài và kèo tỷ số bóng đá euro hôm nay biến máy chủ của loạichar []hoặcVarchar [], và giải pháp này thực sự phù hợp và đủ cho nhiều loại.
Đây là một ví dụ sử dụng kiểu dữ liệuphức tạpTừ ví dụ trongPhần 36.11. Biểu diễn chuỗi bên ngoài của loại đó là(%f,%f), được xác định trong kèo tỷ số bóng đá euro hôm nay chức năngphức tạp_in ()
vàComplex_out ()
Chức năng trongPhần 36.11. Ví dụ sau chèn kèo tỷ số bóng đá euro hôm nay giá trị loại phức(1,1)và(3,3)vào kèo tỷ số bóng đá euro hôm nay cộtAvàB, và chọn chúng từ bảng sau đó.
EXEC SQL bắt đầu phần khai báo;
Ví dụ này hiển thị kết quả sau:
a = (1,1), b = (3,3)
Một cách giải quyết khác đang tránh sử dụng trực tiếp kèo tỷ số bóng đá euro hôm nay loại do người dùng xác định trong ECPG và thay vào đó tạo ra một chức năng hoặc đúc chuyển đổi giữa loại do người dùng xác định và loại nguyên thủy mà ECPG có thể xử lý. Tuy nhiên, lưu ý rằng kèo tỷ số bóng đá euro hôm nay phôi loại đó, đặc biệt là kèo tỷ số bóng đá euro hôm nay loại ẩn, nên được đưa vào hệ thống loại rất cẩn thận.
Ví dụ,
Tạo chức năng created_complex (r Double, I Double) Trả về phức tạp
Sau định nghĩa này, sau đây
EXEC SQL bắt đầu khai báo;
có tác dụng tương tự như
exec SQL chèn vào kèo tỷ số bóng đá euro hôm nay giá trị test_complex ('(1,2)', '(3,4)');
kèo tỷ số bóng đá euro hôm nay ví dụ trên không xử lý kèo tỷ số bóng đá euro hôm nay giá trị null. Trên thực tế, kèo tỷ số bóng đá euro hôm nay ví dụ truy xuất sẽ gây ra lỗi nếu chúng lấy giá trị null từ cơ sở dữ liệu.Chỉ báovà chứa một lá cờ cho biết liệu dữ liệu có phải là null hay không, trong trường hợp đó, giá trị của biến máy chủ thực có bị bỏ qua hay không. Dưới đây là một ví dụ xử lý đúng kèo tỷ số bóng đá euro hôm nay giá trị null một cách chính xác:
EXEC SQL bắt đầu phần khai báo;
kèo tỷ số bóng đá euro hôm nay chỉ báoVal_indsẽ bằng không nếu giá trị không phải là null và nó sẽ âm nếu giá trị null.
45499_45671
Nếu đối số-R NO_INDICATORđược chuyển cho bộ tiền xử lýECPG, nó hoạt động trong"No-Indicator"Chế độ. Trong chế độ không chỉ định, nếu không có biến chỉ báo được chỉ định, kèo tỷ số bóng đá euro hôm nay giá trị null được báo hiệu (trên đầu vào và đầu ra) cho kèo tỷ số bóng đá euro hôm nay loại chuỗi ký tự là chuỗi trống và cho kèo tỷ số bóng đá euro hôm nay loại số nguyên là giá trị thấp nhất có thể cho loại (ví dụ:int_minchoint).