Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2

36.15.InformixChế độ soi kèo bóng đá truoctran

ECPGCó thể chạy trong cái gọi làChế độ soi kèo bóng đá truoctran Informix. Nếu chế độ này hoạt động, nó sẽ cố gắng hành xử như thể đó làInformixPrecompiler choInformixE/SQL. Nói chung, điều này sẽ cho phép bạn sử dụng dấu hiệu đô la thay vìEXEC SQLnguyên thủy để giới thiệu các lệnh SQL nhúng:

$ int j = 3;
$ Kết nối với: dbname;
$ Tạo bảng kiểm tra (i int chính, j int);
$ Chèn vào các giá trị kiểm tra (i, j) (7,: j);
$ Cam kết;

Lưu ý

11689_11737$và soi kèo bóng đá truoctran chỉ thị tiền xử lý sau, nghĩa là,Bao gồm, 11875_11883, IFDEF, v.v.

Có hai chế độ soi kèo bóng đá truoctran:Informix, Informix_SE

Khi liên kết các chương trình sử dụng chế độ soi kèo bóng đá truoctran này, hãy nhớ liên kết vớilibcompatđược vận chuyển với ECPG.

Bên cạnh đường cú pháp được giải thích trước đó,InformixChế độ tương thích soi kèo bóng đá truoctran số chức năng cho đầu vào, đầu ra và chuyển đổi dữ liệu cũng như các câu lệnh SQL nhúng được biết từ E/SQL sang ECPG.

InformixChế độ tương thích được kết nối chặt chẽ với thư viện pgtypeslib soi kèo bóng đá truoctran ECPG. pgtypeslib Bản đồ các loại dữ liệu SQL sang các loại dữ liệu trong chương trình máy chủ C và hầu hết các chức năng bổ sung soi kèo bóng đá truoctranInformixChế độ soi kèo bóng đá truoctran cho phép bạn hoạt động trên các loại chương trình máy chủ C đó. Tuy nhiên, lưu ý rằng mức độ soi kèo bóng đá truoctran bị hạn chế. Nó không cố gắng sao chépInformixHành vi; Nó cho phép bạn thực hiện nhiều hơn hoặc ít hơn các hoạt động và cung cấp cho bạn các chức năng có cùng tên và cùng soi kèo bóng đá truoctran hành vi cơ bản nhưng nó không thay thế nếu bạn đang sử dụngInformixHiện tại. Hơn nữa, soi kèo bóng đá truoctran số loại dữ liệu là khác nhau. Ví dụ,PostgreSQL'sCác loại DateTime và Interval không biết về các phạm vi như ví dụnăm đến phútVì vậy, bạn sẽ không tìm thấy hỗ trợ trong ECPG cho điều đó.

36.15.1. Các loại bổ sung

13755_13895typedef. Trên thực tế, trong chế độ Informix, ECPG từ chối xử lý các tệp nguồn có chứaTypedef chuỗi đôi;

EXEC SQL BẮT ĐẦU phần khai báo;
chuỗi userid; / * Biến này sẽ chứa dữ liệu được cắt */
EXEC SQL END TUYÊN BỐ TUYÊN BỐ;

EXEC SQL tìm nạp mycur vào: userid;

36.15.2. Các câu lệnh SQL nhúng bổ sung/bị thiếu

Đóng cơ sở dữ liệu

Câu lệnh này đóng kết nối hiện tại. Trên thực tế, đây là soi kèo bóng đá truoctran từ đồng nghĩa với ECPG'sNgắt kết nối hiện tại:

$ đóng cơ sở dữ liệu;                / * Đóng kết nối hiện tại */
EXEC SQL Đóng cơ sở dữ liệu;
con trỏ miễn phí_name

Do sự khác biệt về cách thức hoạt động soi kèo bóng đá truoctran ECPG so với ESQL/C soi kèo bóng đá truoctran Informix (tức là, các bước hoàn toàn là các phép biến đổi ngữ pháp và các bước dựa trên thư viện thời gian chạy cơ bản) không cócon trỏ miễn phí_nameCâu lệnh trong ECPG. Điều này là do trong ECPG,Tuyên bố con trỏ15413_15632

statement miễn phí_name

Tuyên bố miễn phí_namelà từ đồng nghĩa với15855_15890.

36.15.3. Các khu vực mô tả SQLDA soi kèo bóng đá truoctran thông tin

Chế độ tương thích Informix hỗ trợ soi kèo bóng đá truoctran cấu trúc khác với cấu trúc được mô tả trongPhần 36.7.2. Xem bên dưới:

struct sqlvar_compat

    SQLTYPE ngắn;
    int sqllen;
    char *sqldata;
    ngắn *sqlind;
    char *sqlname;
    char *sqlformat;
    SQLitype ngắn;
    SQLILEN ngắn;
    char *sqlidata;
    int sqlxid;
    char *sqltypename;
    SQLTYPELEN ngắn;
    SQLOWNerlen ngắn;
    SQLSourCetype ngắn;
    char *sqlownername;
    int SQLSourceId;
    char *sqlilongdata;
    int sqlflags;
    void *sqlreserved;
;

Struct sqlda_compat

    SQLD ngắn;
    struct sqlvar_compat *sqlvar;
    char desc_name [19];
    Desc_occ ngắn;
    struct sqlda_compat *desc_next;
    khoảng trống *bảo lưu;
;

typedef struct sqlvar_compat sqlvar_t;
typedef struct sqlda_compat sqlda_t;

Các thuộc tính toàn cầu là:

SQLD

Số lượng trường trongSQLDAMô tả.

SQLVAR

Con trỏ tới các thuộc tính trên mỗi trường.

desc_name

không được sử dụng, chứa đầy byte bằng không.

desc_occ

Kích thước soi kèo bóng đá truoctran cấu trúc được phân bổ.

desc_next

Con trỏ đến cấu trúc SQLDA tiếp theo nếu tập kết quả chứa nhiều hơn soi kèo bóng đá truoctran bản ghi.

bảo lưu

Con trỏ không sử dụng, chứa null. Được giữ để soi kèo bóng đá truoctran thông tin.

Các thuộc tính trên trường ở bên dưới, chúng được lưu trữ trongSQLVARmảng:

SQLTYPE

18663_18701sqltypes.h

sqllen

Độ dài soi kèo bóng đá truoctran dữ liệu trường.

sqldata

Con trỏ vào dữ liệu trường. Con trỏ là soi kèo bóng đá truoctranchar *Loại, dữ liệu được trỏ bởi nó ở định dạng nhị phân. Ví dụ:

int intval;

Switch (sqldata- sqlvar [i] .sqltype)

    trường hợp sqlinteger:
        intval = *(int *) sqldata- sqlvar [i] .sqldata;
        phá vỡ;
  ...
sqlind

Con trỏ tới chỉ báo null. Nếu được trả lại bằng cách mô tả hoặc tìm nạp thì nó luôn luôn là soi kèo bóng đá truoctran con trỏ hợp lệ. Nếu được sử dụng làm đầu vào choThực thi ... Sử dụng SQLDA;Sau đó, giá trị của con trỏ null có nghĩa là giá trị cho trường này không phải là null. Nếu không thì soi kèo bóng đá truoctran con trỏ hợp lệ vàsqlitypephải được đặt đúng. Ví dụ:

if ( *(int2 *) sqldata- sqlvar [i] .sqlind! = 0)
    printf ("Giá trị là null \ n");
sqlname

Tên soi kèo bóng đá truoctran trường. Chuỗi kết thúc 0.

SQLformat

Được bảo lưu trong Informix, giá trị soi kèo bóng đá truoctranPQFFormatcho trường.

sqlitype

Loại dữ liệu chỉ báo null. Nó luôn luôn là sqlsmint khi trả lại dữ liệu từ máy chủ. KhiSQLDAđược sử dụng cho truy vấn được tham số hóa, dữ liệu được xử lý theo loại tập hợp.

SQLILEN

Độ dài soi kèo bóng đá truoctran dữ liệu chỉ báo null.

SQLXID

Loại trường mở rộng, kết quả soi kèo bóng đá truoctranPQFTYPE.

sqltypename
SQLTYPELEN
SQLOWNERLEN
SQLSourCetype
SQLOWNENSE
SQLSourceID
SQLFlags
sqlreserved

không sử dụng.

SQLILONGDATA

Nó bằng vớisqldatanếusqllenlớn hơn 32kb.

Ví dụ:

EXEC SQL bao gồm sqlda.h;

    sqlda_t *sqlda; / * Điều này không cần phải được nhúng phần khai báo *//

    EXEC SQL bắt đầu phần khai báo;
    char * prep_stmt = "Chọn * từ Bảng1";
    int i;
    EXEC SQL END TUYÊN BỐ TUYÊN BỐ;

    ...

    Exec sql chuẩn bị mystmt từ: prep_stmt;

    EXEC SQL mô tả MyStmt vào sqlda;

    printf ("# của các trường: %d \ n", sqlda- sqld);
    for (i = 0; i <sqlda- sqld; i ++)
      printf ("trường %d: \" %s \ "\ n", sqlda- sqlvar [i]- sqlname);

    EXEC SQL tuyên bố con trỏ Mycursor cho Mystmt;
    Exec sql mở mycursor;
    Exec SQL bất cứ khi nào không tìm thấy Goto ra;

    while (1)

      EXEC SQL tìm nạp mycursor bằng SQLDA;

    Exec sql đóng mycursor;

    miễn phí (sqlda); /* Cấu trúc chính là tất cả để được miễn phí (),
                  * SQLDA và SQLDA- SQLVAR nằm trong soi kèo bóng đá truoctran khu vực được phân bổ */

Để biết thêm thông tin, xemsqlda.hTiêu đề vàsrc/giao diện/ecpg/test/compat_informix/sqlda.pgcKiểm tra hồi quy.

36.15.4. Các chức năng bổ sung

decadd

Thêm hai giá trị loại thập phân.

int decadd (thập phân *arg1, thập phân *arg2, thập phân *sum);

Hàm nhận được soi kèo bóng đá truoctran con trỏ tới toán hạng đầu tiên của thập phân (arg1), soi kèo bóng đá truoctran con trỏ tới toán hạng thứ hai của loại thập phân (arg2) và soi kèo bóng đá truoctran con trỏ tới giá trị của số thập phân sẽ chứa tổng (Sum23992_24033ECPG_INFORMIX_NUM_OVERFLOWđược trả về trong trường hợp tràn vàECPG_INFORMIX_NUM_UNDERFLOWTrong trường hợp dòng chảy. -1 được trả về cho các lỗi khác vàerrnođược đặt thành soi kèo bóng đá truoctran ứngerrnoSố lượng soi kèo bóng đá truoctran pgtypeslib.

DECCMP

So sánh hai biến số thập phân.

int deccmp (thập phân *arg1, thập phân *arg2);

Hàm nhận được soi kèo bóng đá truoctran con trỏ tới giá trị thập phân đầu tiên (arg1), soi kèo bóng đá truoctran con trỏ tới giá trị thập phân thứ hai (arg2) và trả về giá trị số nguyên cho biết giá trị lớn hơn.

  • 1, nếu giá trị đóarg1Điểm lớn hơn giá trịvar2Điểm đến

  • -1, nếu giá trị đóarg1Điểm đến nhỏ hơn giá trịarg2Điểm đến

  • 0, nếu giá trị đóarg1Điểm và giá trị đóarg2điểm là bằng nhau

Deccopy

Sao chép giá trị thập phân.

void deccopy (thập phân *src, thập phân *mục tiêu);

Hàm nhận được soi kèo bóng đá truoctran con trỏ tới giá trị thập phân cần được sao chép dưới dạng đối số đầu tiên (SRC) và soi kèo bóng đá truoctran con trỏ tới cấu trúc mục tiêu của loại thập phân (Target) là đối số thứ hai.

deccvasc

Chuyển đổi giá trị từ biểu diễn ASCII của nó thành soi kèo bóng đá truoctran loại thập phân.

int deccvasc (char *cp, int len, thập phân *np);

Hàm nhận được soi kèo bóng đá truoctran con trỏ đến chuỗi chứa biểu diễn chuỗi của số sẽ được chuyển đổi (CP) cũng như độ dài soi kèo bóng đá truoctran nólen. NPlà soi kèo bóng đá truoctran con trỏ tới giá trị thập phân giúp tiết kiệm kết quả của hoạt động.

Định dạng hợp lệ là ví dụ:-2, .794, +3.44, 592.49E07hoặc-32.84E-4.

Hàm trả về 0 khi thành công. Nếu tràn hoặc dòng chảy xảy ra,ECPG_INFORMIX_NUM_OVERFLOWhoặcECPG_INFORMIX_NUM_UNDERFLOWđược trả về. Nếu đại diện ASCII không thể được phân tích cú pháp,ECPG_Informix_Bad_Numericđược trả về hoặcECPG_Informix_Bad_ExponentNếu vấn đề này xảy ra trong khi phân tích số mũ.

DECCVDBL

27563_27623

int deccvdbl (Double dbl, decimal *np);

Hàm nhận được biến soi kèo bóng đá truoctran loại đôi nên được chuyển đổi dưới dạng đối số đầu tiên soi kèo bóng đá truoctran nó (27838_27843). Là đối số thứ hai (NP), hàm nhận được soi kèo bóng đá truoctran con trỏ tới biến số thập phân sẽ giữ kết quả của hoạt động.

Hàm trả về 0 khi thành công và giá trị âm nếu chuyển đổi không thành công.

Deccvint

Chuyển đổi giá trị loại int thành giá trị soi kèo bóng đá truoctran loại thập phân.

int deccvint (int in, decimal *np);

Hàm nhận được biến soi kèo bóng đá truoctran loại int nên được chuyển đổi dưới dạng đối số đầu tiên soi kèo bóng đá truoctran nó (in). Là đối số thứ hai (NP), hàm nhận được soi kèo bóng đá truoctran con trỏ tới biến số thập phân sẽ giữ kết quả của hoạt động.

Hàm trả về 0 khi thành công và giá trị âm nếu chuyển đổi không thành công.

Deccvlong

Chuyển đổi giá trị soi kèo bóng đá truoctran loại dài thành giá trị soi kèo bóng đá truoctran số thập phân.

int deccvlong (lng dài, thập phân *np);

Hàm nhận được biến soi kèo bóng đá truoctran loại dài nên được chuyển đổi dưới dạng đối số đầu tiên soi kèo bóng đá truoctran nó (LNG). Là đối số thứ hai (NP), hàm nhận được soi kèo bóng đá truoctran con trỏ tới biến số thập phân sẽ giữ kết quả của hoạt động.

hàm trả về 0 khi thành công và giá trị âm nếu chuyển đổi không thành công.

DECDIV

chia hai biến số thập phân.

int decdiv (thập phân *n1, thập phân *n2, số thập phân *result);

Hàm nhận được con trỏ đến các biến là đầu tiên (N1) và lần thứ hai (N2) Các toán hạng và tính toánN1/N2. resultlà soi kèo bóng đá truoctran con trỏ tới biến sẽ giữ kết quả của hoạt động.

Khi thành công, 0 được trả về và giá trị âm nếu bộ phận thất bại. Nếu xảy ra tràn hoặc dòng chảy, chức năng trả vềECPG_INFORMIX_NUM_OVERFLOWhoặcECPG_INFORMIX_NUM_UNDERFLOWtương ứng. Nếu soi kèo bóng đá truoctran nỗ lực chia cho 0 được quan sát, hàm sẽ trả vềECPG_INFORMIX_DIVIDE_ZERO.

Decmul

Nhân hai giá trị thập phân.

int decmul (thập phân *n1, thập phân *n2, số thập phân *result);

Hàm nhận được con trỏ đến các biến là đầu tiên (N1) và lần thứ hai (N2) Toán tử và tính toánN1*N2. resultlà soi kèo bóng đá truoctran con trỏ tới biến sẽ giữ kết quả của hoạt động.

Khi thành công, 0 được trả về và giá trị âm nếu phép nhân không thành công. Nếu xảy ra tràn hoặc dòng chảy, chức năng trả vềECPG_INFORMIX_NUM_OVERFLOWhoặcECPG_INFORMIX_NUM_UNDERFLOW

decsub

Trừ soi kèo bóng đá truoctran giá trị thập phân từ khác.

int decsub (thập phân *n1, thập phân *n2, số thập phân *result);

Hàm nhận được con trỏ đến các biến là đầu tiên (N1) và lần thứ hai (N231776_31804N1-N2. Kết quả31902_31979

Khi thành công, 0 được trả về và giá trị âm nếu phép trừ không thành công. Nếu xảy ra tràn hoặc dòng chảy, chức năng trả vềECPG_INFORMIX_NUM_OVERFLOWhoặcECPG_INFORMIX_NUM_UNDERFLOWsoi kèo bóng đá truoctran ứng.

Dectoasc

Chuyển đổi soi kèo bóng đá truoctran biến số thập phân thành biểu diễn ASCII của nó trong chuỗi c char* chuỗi.

int Dectoasc (thập phân *np, char *cp, int len, int right)

Hàm nhận được soi kèo bóng đá truoctran con trỏ tới soi kèo bóng đá truoctran biến của loại thập phân (NP) mà nó chuyển đổi thành biểu diễn văn bản soi kèo bóng đá truoctran nó.CPlà bộ đệm sẽ giữ kết quả soi kèo bóng đá truoctran hoạt động. Tham sốphảiChỉ định, có bao nhiêu chữ số bên phải soi kèo bóng đá truoctran điểm thập phân nên được đưa vào đầu ra. Kết quả sẽ được làm tròn đến số chữ số thập phân này. Cài đặtphảiđến -1 chỉ ra rằng tất cả các chữ số thập phân có sẵn phải được đưa vào đầu ra. Nếu độ dài soi kèo bóng đá truoctran bộ đệm đầu ra, được biểu thị bằnglenkhông đủ để giữ biểu diễn văn bản bao gồm cả byte theo dõi, chỉ soi kèo bóng đá truoctran*ký tự được lưu trữ trong kết quả và -1 được trả về.

Hàm trả về -1 nếu bộ đệmCPquá nhỏ hoặcECPG_INFORMIX_OUT_OF_MEMORYNếu bộ nhớ đã cạn kiệt.

DECTODBL

Chuyển đổi soi kèo bóng đá truoctran biến số thập phân thành Double.

int Dectodbl (thập phân *np, double *dblp);

Hàm nhận được soi kèo bóng đá truoctran con trỏ tới giá trị thập phân để chuyển đổi (NP) và soi kèo bóng đá truoctran con trỏ tới biến kép sẽ giữ kết quả của hoạt động (DBLP).

Khi thành công, 0 được trả về và giá trị âm nếu chuyển đổi không thành công.

34259_34269

Chuyển đổi soi kèo bóng đá truoctran biến số thập phân thành số nguyên.

int Dectoint (thập phân *np, int *ip);

Hàm nhận được soi kèo bóng đá truoctran con trỏ tới giá trị thập phân để chuyển đổi (NP) và soi kèo bóng đá truoctran con trỏ tới biến số nguyên sẽ giữ kết quả của hoạt động (IP).

Khi thành công, 0 được trả về và giá trị âm nếu chuyển đổi không thành công. Nếu xảy ra tràn,ECPG_INFORMIX_NUM_OVERFLOWđược trả về.

Lưu ý rằng việc triển khai ECPG khác vớiInformixtriển khai.InformixGiới hạn số nguyên ở phạm vi từ -32767 đến 32767, trong khi các giới hạn trong triển khai ECPG phụ thuộc vào kiến ​​trúc (int_min .. int_max).

Dectolong

Chuyển đổi soi kèo bóng đá truoctran biến số thập phân thành số nguyên dài.

35416_35459

Hàm nhận được soi kèo bóng đá truoctran con trỏ tới giá trị thập phân để chuyển đổi (NP) và soi kèo bóng đá truoctran con trỏ tới biến dài sẽ giữ kết quả của hoạt động (lngp).

Khi thành công, 0 được trả về và giá trị âm nếu chuyển đổi không thành công. Nếu xảy ra tràn,ECPG_INFORMIX_NUM_OVERFLOWđược trả về.

Lưu ý rằng việc triển khai ECPG khác vớiInformixTriển khai.InformixGiới hạn số nguyên dài đến phạm vi từ -2,147,483,647 đến 2.147.483.647, trong khi các giới hạn trong triển khai ECPG phụ thuộc vào kiến ​​trúc (-Long_max .. Long_Max).

rdatestr

Chuyển đổi soi kèo bóng đá truoctran ngày thành chuỗi c char*.

int rdatestr (ngày d, char *str);

Hàm nhận được hai đối số, lần đầu tiên là ngày để chuyển đổi (D) và cái thứ hai là soi kèo bóng đá truoctran con trỏ tới chuỗi đích. Định dạng đầu ra luôn luônYYYY-MM-DD, vì vậy bạn cần phân bổ ít nhất 11 byte (bao gồm cả Terminator không byte) cho chuỗi.

hàm trả về 0 khi thành công và giá trị âm trong trường hợp lỗi.

Lưu ý rằng việc triển khai soi kèo bóng đá truoctran ECPG khác vớiInformixThực hiện. TRONGInformixĐịnh dạng có thể bị ảnh hưởng bởi việc thiết lập các biến môi trường. Tuy nhiên, trong ECPG, bạn không thể thay đổi định dạng đầu ra.

rstrdate

phân tích biểu diễn văn bản của soi kèo bóng đá truoctran ngày.

int rstrdate (char *str, ngày *d);

Hàm nhận được biểu diễn văn bản soi kèo bóng đá truoctran ngày để chuyển đổi (str37562_37608D). Hàm này không cho phép bạn chỉ định mặt nạ định dạng. Nó sử dụng mặt nạ định dạng mặc định soi kèo bóng đá truoctranInformixđó làmm/dd/yyyy. Trong nội bộ, chức năng này được thực hiện bằng phương tiệnrdefmtdate. Vì thế,rstrdatekhông nhanh hơn và nếu bạn có lựa chọn, bạn nên chọn chordefmtdatecho phép bạn chỉ định mặt nạ định dạng soi kèo bóng đá truoctran cách rõ ràng.

Hàm trả về các giá trị giống nhưrdefmtdate.

rtoday

Nhận ngày hiện tại.

void rtoday (ngày *d);

Hàm nhận được soi kèo bóng đá truoctran con trỏ tới biến ngày (D) rằng nó đặt thành ngày hiện tại.

Trong nội bộ chức năng này sử dụngpgtypesdate_todaychức năng.

rjulmdy

Trích xuất các giá trị cho ngày, tháng và năm từ soi kèo bóng đá truoctran biến của loại ngày.

int rjulmdy (ngày d, ngắn mdy [3]);

Hàm nhận ngàyDvà soi kèo bóng đá truoctran con trỏ tới soi kèo bóng đá truoctran mảng gồm 3 giá trị số nguyên ngắnmdy. Tên biến cho biết thứ tự tuần tự:mdy [0]sẽ được đặt thành số lượng soi kèo bóng đá truoctran tháng,mdy [1]sẽ được đặt thành giá trị soi kèo bóng đá truoctran ngày vàmdy [2]sẽ chứa năm.

Hàm luôn trả về 0 tại thời điểm này.

Nội dung chức năng sử dụngpgtypesdate_julmdychức năng.

rdefmtdate

Sử dụng mặt nạ định dạng để chuyển đổi chuỗi ký tự thành giá trị soi kèo bóng đá truoctran loại ngày.

int rdefmtdate (ngày *d, char *fmt, char *str);

Hàm nhận được soi kèo bóng đá truoctran con trỏ tới giá trị ngày sẽ giữ kết quả của hoạt động (D), Mặt nạ định dạng để sử dụng để phân tích ngày (FMT) và chuỗi c char* chứa biểu diễn văn bản soi kèo bóng đá truoctran ngày (str). Biểu diễn văn bản dự kiến ​​sẽ phù hợp với mặt nạ định dạng. Tuy nhiên, bạn không cần phải có ánh xạ 1: 1 soi kèo bóng đá truoctran chuỗi vào mặt nạ định dạng. Hàm chỉ phân tích thứ tự tuần tự và tìm kiếm các chữYYhoặcYyyychỉ ra vị trí soi kèo bóng đá truoctran năm,mmĐể chỉ ra vị trí soi kèo bóng đá truoctran tháng vàDDĐể chỉ ra vị trí soi kèo bóng đá truoctran ngày.

Hàm trả về các giá trị sau:

  • 0 - Hàm chấm dứt thành công.

  • ECPG_INFORMIX_ENOSHORTDATE- Ngày không chứa các dấu phân cách giữa ngày, tháng và năm. Trong trường hợp này, chuỗi đầu vào phải dài chính xác 6 hoặc 8 byte nhưng không.

  • ECPG_INFORMIX_ENOTDMY- Chuỗi định dạng không chỉ chính xác thứ tự tuần tự soi kèo bóng đá truoctran năm, tháng và ngày.

  • ECPG_INFORMIX_BAD_DAY- Chuỗi đầu vào không chứa soi kèo bóng đá truoctran ngày hợp lệ.

  • ECPG_INFORMIX_BAD_MONTH41864_41917

  • ECPG_INFORMIX_BAD_YEAR- Chuỗi đầu vào không chứa năm hợp lệ.

Trong nội bộ Hàm này được triển khai để sử dụngpgtypesdate_defmt_ascHàm. Xem tham chiếu ở đó để biết bảng đầu vào ví dụ.

rfmtdate

Chuyển đổi soi kèo bóng đá truoctran biến của loại ngày thành biểu diễn văn bản của nó bằng mặt nạ định dạng.

int rfmtdate (ngày d, char *fmt, char *str);

Hàm nhận ngày để chuyển đổi (D), Mặt nạ định dạng (FMT42836_42910str).

Khi thành công, 0 được trả về và giá trị âm nếu xảy ra lỗi.

Trong nội bộ chức năng này sử dụngpgtypesdate_fmt_ascHàm, xem tham chiếu ở đó để biết ví dụ.

rmdyjul

Tạo giá trị ngày từ soi kèo bóng đá truoctran mảng gồm 3 số nguyên ngắn chỉ định ngày, tháng và năm của ngày.

int rmdyjul (ngắn mdy [3], ngày *d);

Hàm nhận được mảng soi kèo bóng đá truoctran 3 số nguyên ngắn (mdy) và soi kèo bóng đá truoctran con trỏ tới soi kèo bóng đá truoctran biến của loại ngày sẽ giữ kết quả của hoạt động.

Hiện tại chức năng luôn trả về 0.

Trong nội bộ chức năng được triển khai để sử dụng chức năngpgtypesdate_mdyjul.

rdayofweek

Trả về soi kèo bóng đá truoctran số đại diện cho ngày trong tuần cho soi kèo bóng đá truoctran giá trị ngày.

int rdayofweek (ngày d);

Hàm nhận được biến ngàyDLà đối số duy nhất của nó và trả về soi kèo bóng đá truoctran số nguyên biểu thị ngày trong tuần cho ngày này.

  • 0 - Chủ nhật

  • 1 - Thứ Hai

  • 2 - Thứ ba

  • 3 - Thứ tư

  • 4 - Thứ năm

  • 5 - Thứ sáu

  • 6 - Thứ bảy

Trong nội bộ chức năng được triển khai để sử dụng chức năngpgtypesdate_dayofweek.

dtcien

Truy xuất dấu thời gian hiện tại.

void dtcien (dấu thời gian *ts);

45658_45751TSĐiểm đến.

dtcvasc

phân tích dấu thời gian từ biểu diễn văn bản của nó thành soi kèo bóng đá truoctran biến dấu thời gian.

int dtcvasc (char *str, dấu thời gian *ts);

Hàm nhận chuỗi để phân tích cú pháp (str) và soi kèo bóng đá truoctran con trỏ tới biến dấu thời gian sẽ giữ kết quả của hoạt động (TS).

hàm trả về 0 khi thành công và giá trị âm trong trường hợp lỗi.

Trong nội bộ chức năng này sử dụngpgtypestimestamp_from_ascHàm. Xem tham chiếu ở đó cho soi kèo bóng đá truoctran bảng có đầu vào ví dụ.

DTCVFMTASC

Phân tích dấu thời gian từ biểu diễn văn bản soi kèo bóng đá truoctran nó bằng cách sử dụng mặt nạ định dạng vào biến dấu thời gian.

dtcvfmtasc (char *inbuf, char *fmtstr, dấu thời gian *dtvalue)

Hàm nhận chuỗi để phân tích.INBUF), Mặt nạ định dạng để sử dụng (FMTSTR) và soi kèo bóng đá truoctran con trỏ tới biến dấu thời gian sẽ giữ kết quả của hoạt động (DTVALUE).

Hàm này được thực hiện bằng phương tiệnpgtypestimestamp_defmt_ascHàm. Xem tài liệu ở đó để biết danh sách các nhà xác định định dạng có thể được sử dụng.

hàm trả về 0 khi thành công và giá trị âm trong trường hợp lỗi.

DTSUB

Trừ soi kèo bóng đá truoctran dấu thời gian từ soi kèo bóng đá truoctran thời gian khác và trả về soi kèo bóng đá truoctran biến của khoảng thời gian.

47830_47890

Hàm sẽ trừ biến dấu thời gian đóTS2Các điểm từ biến dấu thời gian đóTS1Điểm đến và sẽ lưu trữ kết quả trong biến khoảng thời gianIVĐiểm đến.

Khi thành công, hàm trả về 0 và giá trị âm nếu xảy ra lỗi.

dttoasc

Chuyển đổi biến dấu thời gian thành chuỗi c char*.

int dttoasc (dấu thời gian *ts, char *ra);

Hàm nhận được soi kèo bóng đá truoctran con trỏ tới biến dấu thời gian để chuyển đổi (TS) và chuỗi sẽ giữ kết quả soi kèo bóng đá truoctran hoạt động (OUTPUT). Nó chuyển đổiTSvới biểu diễn văn bản soi kèo bóng đá truoctran nó theo tiêu chuẩn SQL, đó làYYYY-MM-DD HH: MM: SS.

Khi thành công, hàm trả về 0 và giá trị âm nếu xảy ra lỗi.

dttofmtasc

Chuyển đổi biến dấu thời gian thành c char c* Sử dụng mặt nạ định dạng.

int dttofmtasc (dấu thời gian *ts, char *oput

Hàm nhận được soi kèo bóng đá truoctran con trỏ tới dấu thời gian để chuyển đổi dưới dạng đối số đầu tiên của nó (TS), soi kèo bóng đá truoctran con trỏ tới bộ đệm đầu ra (đầu ra), Độ dài tối đa đã được phân bổ cho bộ đệm đầu ra (str_len49627_49678FMTSTR).

Khi thành công, hàm trả về 0 và giá trị âm nếu xảy ra lỗi.

Trong nội bộ, chức năng này sử dụngpgtypestimestamp_fmt_ascHàm. Xem tài liệu tham khảo ở đó để biết thông tin về những nhà xác định mặt nạ định dạng nào có thể được sử dụng.

Chuyển đổi soi kèo bóng đá truoctran biến khoảng thành chuỗi c char*.

50291_50331

Hàm nhận soi kèo bóng đá truoctran con trỏ tới biến khoảng để chuyển đổi (i) và chuỗi sẽ giữ kết quả soi kèo bóng đá truoctran hoạt động (str). Nó chuyển đổiivới biểu diễn văn bản soi kèo bóng đá truoctran nó theo tiêu chuẩn SQL, đó làYYYY-MM-DD HH: MM: SS.

Khi thành công, hàm trả về 0 và giá trị âm nếu xảy ra lỗi.

rfmtlong

Chuyển đổi giá trị số nguyên dài thành biểu diễn văn bản soi kèo bóng đá truoctran nó bằng mặt nạ định dạng.

int rfmtlong (lng_val dài, char *fmt, char *outbuf);

Hàm nhận được giá trị dàilng_val, Mặt nạ định dạngFMTvà soi kèo bóng đá truoctran con trỏ tới bộ đệm đầu raOutbuf. Nó chuyển đổi giá trị dài theo mặt nạ định dạng thành biểu diễn văn bản soi kèo bóng đá truoctran nó.

Mặt nạ định dạng có thể bao gồm các ký tự chỉ định định dạng sau:

  • *(Asterisk) - Nếu vị trí này sẽ trống nếu không, hãy điền nó bằng dấu hoa thị.

  • &(Ampersand) - Nếu vị trí này sẽ trống nếu không, hãy điền nó bằng số 0.

  • #- Biến số 0 hàng đầu thành chỗ trống.

  • <- trái với số trong chuỗi.

  • ,(dấu phẩy) - Số nhóm soi kèo bóng đá truoctran bốn hoặc nhiều chữ số thành các nhóm ba chữ số được phân tách bằng dấu phẩy.

  • .(giai đoạn) - ký tự này phân tách phần toàn bộ số soi kèo bóng đá truoctran số với phần phân số.

  • -(trừ) - dấu trừ xuất hiện nếu số là giá trị âm.

  • +(cộng) - dấu cộng xuất hiện nếu số là giá trị dương.

  • (- Điều này thay thế dấu trừ ở phía trước số âm. Dấu trừ sẽ không xuất hiện.

  • )53357_53437

  • $- Biểu tượng tiền tệ.

Rupshift

Chuyển đổi soi kèo bóng đá truoctran chuỗi thành trường hợp trên.

void Rupshift (char *str);

Hàm nhận soi kèo bóng đá truoctran con trỏ tới chuỗi và biến đổi mọi ký tự chữ thường thành chữ hoa.

Byleng

Trả về số lượng ký tự trong soi kèo bóng đá truoctran chuỗi mà không đếm khoảng trống kéo dài.

int Byleng (char *str, int len);

54259_54327str) và độ dài soi kèo bóng đá truoctran nó là đối số thứ hai soi kèo bóng đá truoctran nó (len54430_54541

ldchar

Sao chép chuỗi có độ dài cố định vào chuỗi kết thúc null.

void ldchar (char *src, int len, char *dest);

Hàm nhận chuỗi độ dài cố định để sao chép (SRC), Độ dài soi kèo bóng đá truoctran nó (len) và soi kèo bóng đá truoctran con trỏ tới bộ nhớ đích (Dest). Lưu ý rằng bạn cần đặt trước ít nhấtlen+1byte cho chuỗi đóDestĐiểm đến. Chức năng sao chép nhiều nhấtlenByte cho vị trí mới (ít hơn nếu chuỗi nguồn có khoảng trống dấu

RGetMSG
int rgetMSG (int msgnum, char *s, int maxsize);

Hàm này tồn tại nhưng không được thực hiện tại thời điểm này!

rtypalign
int rtypalign (int offset, int type);

Hàm này tồn tại nhưng không được thực hiện tại thời điểm này!

rtypmsize
int rtypmsize (int type, int len);

Hàm này tồn tại nhưng không được thực hiện tại thời điểm này!

rtypwidth
int rtypwidth (int sqltype, int sqllen);

56348_56408

rsetNull

Đặt soi kèo bóng đá truoctran biến thành NULL.

int rsetNull (int t, char *ptr);

Hàm nhận được soi kèo bóng đá truoctran số nguyên biểu thị loại biến và con trỏ tới chính biến được chuyển đến con trỏ c char*.

Các loại sau tồn tại:

  • cchartype- cho soi kèo bóng đá truoctran biến của loạicharhoặcchar*

  • cshortType- cho soi kèo bóng đá truoctran biến của loạiShort Int

  • Cinttype- cho soi kèo bóng đá truoctran biến của loạiint

  • cbooltype- cho soi kèo bóng đá truoctran biến của loạiBoolean

  • CfloatsType- cho soi kèo bóng đá truoctran biến của loạifloat

  • clongtype- cho soi kèo bóng đá truoctran biến của loạiLong

  • CDoubletype- cho soi kèo bóng đá truoctran biến của loạiDouble

  • CDECIMALTYPE- cho soi kèo bóng đá truoctran biến của loạithập phân

  • ​​CDATETYPE- cho soi kèo bóng đá truoctran biến của loạingày

  • CDTimeType- cho soi kèo bóng đá truoctran biến của loại58718_58729

Đây là soi kèo bóng đá truoctran ví dụ về cuộc gọi đến chức năng này:

$ char c [] = "ABC";
$ ngắn s = 17;
$ int i = -74874;

rsetNull (cchartype, (char *) c);
rsetNull (cshortType, (char *) & s);
rsetNull (cinttype, (char *) & i);
Risnull

Kiểm tra nếu soi kèo bóng đá truoctran biến là null.

int risnull (int t, char *ptr);

Hàm nhận được loại biến để kiểm tra (T) cũng như soi kèo bóng đá truoctran con trỏ tới biến này (PTR). Lưu ý rằng cái sau cần được đúc vào char*. Xem chức năngrsetNullĐể biết danh sách các loại biến có thể.

59693_59742

$ char c [] = "ABC";
$ ngắn s = 17;
$ int i = -74874;

risnull (cchartype, (char *) c);
risnull (cshortType, (char *) & s);
risnull (cinttype, (char *) & i);

36.15.5. Hằng số bổ sung

Lưu ý rằng tất cả các hằng số ở đây mô tả các lỗi và tất cả chúng được xác định để biểu diễn các giá trị âm. Trong các mô tả soi kèo bóng đá truoctran các hằng số khác nhau, bạn cũng có thể tìm thấy giá trị mà các hằng số đại diện trong quá trình thực hiện hiện tại. Tuy nhiên, bạn không nên dựa vào số này. Tuy nhiên, bạn có thể dựa vào thực tế tất cả chúng được xác định để biểu diễn các giá trị âm.

ECPG_INFORMIX_NUM_OVERFLOW

Hàm trả về giá trị này nếu xảy ra tràn trong tính toán. Bên trong nó được định nghĩa là -1200 (TheInformixĐịnh nghĩa).

ECPG_INFORMIX_NUM_UNDERFLOW

Hàm trả về giá trị này nếu soi kèo bóng đá truoctran dòng chảy xảy ra trong tính toán. Bên trong nó được định nghĩa là -1201 (The61227_61237Định nghĩa).

ECPG_INFORMIX_DIVIDE_ZERO

Hàm trả về giá trị này nếu soi kèo bóng đá truoctran nỗ lực chia cho 0 được quan sát. Bên trong nó được định nghĩa là -1202 (TheInformixĐịnh nghĩa).

ECPG_INFORMIX_BAD_YEAR

Hàm trả về giá trị này nếu soi kèo bóng đá truoctran giá trị xấu trong soi kèo bóng đá truoctran năm được tìm thấy trong khi phân tích soi kèo bóng đá truoctran ngày. Bên trong nó được định nghĩa là -1204 (TheInformixĐịnh nghĩa).

ECPG_INFORMIX_BAD_MONTH

Hàm trả về giá trị này nếu soi kèo bóng đá truoctran giá trị xấu trong soi kèo bóng đá truoctran tháng được tìm thấy trong khi phân tích ngày. Bên trong nó được định nghĩa là -1205 (TheInformixĐịnh nghĩa).

ECPG_INFORMIX_BAD_DAY

Hàm trả về giá trị này nếu soi kèo bóng đá truoctran giá trị xấu trong soi kèo bóng đá truoctran ngày được tìm thấy trong khi phân tích ngày. Bên trong nó được định nghĩa là -1206 (TheInformixĐịnh nghĩa).

ECPG_INFORMIX_ENOSHORTDATE

Hàm trả về giá trị này nếu thói quen phân tích cú pháp cần soi kèo bóng đá truoctran biểu diễn ngày ngắn nhưng không nhận được chuỗi ngày theo độ dài phù hợp. Bên trong nó được định nghĩa là -1209 (TheInformixĐịnh nghĩa).

ECPG_INFORMIX_DATE_CONVERT

63038_63152InformixĐịnh nghĩa).

ECPG_INFORMIX_OUT_OF_MEMORY

Hàm trả về giá trị này nếu bộ nhớ cạn kiệt trong quá trình hoạt động soi kèo bóng đá truoctran chúng. Bên trong nó được định nghĩa là -1211 (TheInformixĐịnh nghĩa).

ECPG_INFORMIX_ENOTDMY

Hàm trả về giá trị này nếu thói quen phân tích cú pháp được cho là có mặt nạ định dạng (nhưMMDDYY) Nhưng không phải tất cả các trường được liệt kê chính xác. Bên trong nó được định nghĩa là -1212 (TheInformixĐịnh nghĩa).

ECPG_Informix_Bad_Numeric

Các hàm trả về giá trị này nếu soi kèo bóng đá truoctran thói quen phân tích cú pháp không thể phân tích biểu diễn văn bản cho soi kèo bóng đá truoctran giá trị số vì nó chứa lỗi hoặc nếu soi kèo bóng đá truoctran thói quen không thể hoàn thành tính toán liên quan đến các biến số vì ít nhất soi kèo bóng đá truoctran trong các biến số là không hợp lệ. Bên trong nó được định nghĩa là -1213 (TheInformixĐịnh nghĩa).

ECPG_Informix_Bad_Exponent

Hàm trả về giá trị này nếu thói quen phân tích cú pháp không thể phân tích số mũ. Bên trong nó được định nghĩa là -1216 (TheInformixĐịnh nghĩa).

ECPG_INFORMIX_BAD_DATE

Hàm trả về giá trị này nếu thói quen phân tích cú pháp không thể phân tích ngày. Bên trong nó được định nghĩa là -1218 (TheInformixĐịnh nghĩa).

ECPG_INFORMIX_EXTRA_CHARS

Các hàm trả về giá trị này nếu soi kèo bóng đá truoctran thói quen phân tích cú pháp được truyền các ký tự phụ mà nó không thể phân tích được. Bên trong nó được định nghĩa là -1264 (TheInformixĐịnh nghĩa).

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm soi kèo bóng đá truoctran bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.