Win32 API 日本語リファレンス
ホームStorage.Jet › JET_COLUMNLIST

JET_COLUMNLIST

構造体
サイズx64: 80 バイト / x86: 68 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
cbStructDWORD4+0+0この構造体のバイトサイズ。
tableidJET_TABLEID8/4+8+4列一覧が格納された一時テーブルのテーブルID。
cRecordDWORD4+16+8一時テーブル内のレコード(列)数。
columnidPresentationOrderDWORD4+20+12表示順序列の列IDを示す値。
columnidcolumnnameDWORD4+24+16列名列の列IDを示す値。
columnidcolumnidDWORD4+28+20列ID列の列IDを示す値。
columnidcoltypDWORD4+32+24列型列の列IDを示す値。
columnidCountryDWORD4+36+28国コード列の列IDを示す値。
columnidLangidDWORD4+40+32言語ID列の列IDを示す値。
columnidCpDWORD4+44+36コードページ列の列IDを示す値。
columnidCollateDWORD4+48+40照合順序列の列IDを示す値。
columnidcbMaxDWORD4+52+44最大長列の列IDを示す値。
columnidgrbitDWORD4+56+48grbit列の列IDを示す値。
columnidDefaultDWORD4+60+52既定値列の列IDを示す値。
columnidBaseTableNameDWORD4+64+56基底テーブル名列の列IDを示す値。
columnidBaseColumnNameDWORD4+68+60基底列名列の列IDを示す値。
columnidDefinitionNameDWORD4+72+64定義名列の列IDを示す値。

各言語での定義

#include <windows.h>

// JET_COLUMNLIST  (x64 80 / x86 68 バイト)
typedef struct JET_COLUMNLIST {
    DWORD cbStruct;
    JET_TABLEID tableid;
    DWORD cRecord;
    DWORD columnidPresentationOrder;
    DWORD columnidcolumnname;
    DWORD columnidcolumnid;
    DWORD columnidcoltyp;
    DWORD columnidCountry;
    DWORD columnidLangid;
    DWORD columnidCp;
    DWORD columnidCollate;
    DWORD columnidcbMax;
    DWORD columnidgrbit;
    DWORD columnidDefault;
    DWORD columnidBaseTableName;
    DWORD columnidBaseColumnName;
    DWORD columnidDefinitionName;
} JET_COLUMNLIST;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct JET_COLUMNLIST
{
    public uint cbStruct;
    public UIntPtr tableid;
    public uint cRecord;
    public uint columnidPresentationOrder;
    public uint columnidcolumnname;
    public uint columnidcolumnid;
    public uint columnidcoltyp;
    public uint columnidCountry;
    public uint columnidLangid;
    public uint columnidCp;
    public uint columnidCollate;
    public uint columnidcbMax;
    public uint columnidgrbit;
    public uint columnidDefault;
    public uint columnidBaseTableName;
    public uint columnidBaseColumnName;
    public uint columnidDefinitionName;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure JET_COLUMNLIST
    Public cbStruct As UInteger
    Public tableid As UIntPtr
    Public cRecord As UInteger
    Public columnidPresentationOrder As UInteger
    Public columnidcolumnname As UInteger
    Public columnidcolumnid As UInteger
    Public columnidcoltyp As UInteger
    Public columnidCountry As UInteger
    Public columnidLangid As UInteger
    Public columnidCp As UInteger
    Public columnidCollate As UInteger
    Public columnidcbMax As UInteger
    Public columnidgrbit As UInteger
    Public columnidDefault As UInteger
    Public columnidBaseTableName As UInteger
    Public columnidBaseColumnName As UInteger
    Public columnidDefinitionName As UInteger
End Structure
import ctypes
from ctypes import wintypes

class JET_COLUMNLIST(ctypes.Structure):
    _fields_ = [
        ("cbStruct", wintypes.DWORD),
        ("tableid", ctypes.c_size_t),
        ("cRecord", wintypes.DWORD),
        ("columnidPresentationOrder", wintypes.DWORD),
        ("columnidcolumnname", wintypes.DWORD),
        ("columnidcolumnid", wintypes.DWORD),
        ("columnidcoltyp", wintypes.DWORD),
        ("columnidCountry", wintypes.DWORD),
        ("columnidLangid", wintypes.DWORD),
        ("columnidCp", wintypes.DWORD),
        ("columnidCollate", wintypes.DWORD),
        ("columnidcbMax", wintypes.DWORD),
        ("columnidgrbit", wintypes.DWORD),
        ("columnidDefault", wintypes.DWORD),
        ("columnidBaseTableName", wintypes.DWORD),
        ("columnidBaseColumnName", wintypes.DWORD),
        ("columnidDefinitionName", wintypes.DWORD),
    ]
#[repr(C)]
pub struct JET_COLUMNLIST {
    pub cbStruct: u32,
    pub tableid: usize,
    pub cRecord: u32,
    pub columnidPresentationOrder: u32,
    pub columnidcolumnname: u32,
    pub columnidcolumnid: u32,
    pub columnidcoltyp: u32,
    pub columnidCountry: u32,
    pub columnidLangid: u32,
    pub columnidCp: u32,
    pub columnidCollate: u32,
    pub columnidcbMax: u32,
    pub columnidgrbit: u32,
    pub columnidDefault: u32,
    pub columnidBaseTableName: u32,
    pub columnidBaseColumnName: u32,
    pub columnidDefinitionName: u32,
}
import "golang.org/x/sys/windows"

type JET_COLUMNLIST struct {
	cbStruct uint32
	tableid uintptr
	cRecord uint32
	columnidPresentationOrder uint32
	columnidcolumnname uint32
	columnidcolumnid uint32
	columnidcoltyp uint32
	columnidCountry uint32
	columnidLangid uint32
	columnidCp uint32
	columnidCollate uint32
	columnidcbMax uint32
	columnidgrbit uint32
	columnidDefault uint32
	columnidBaseTableName uint32
	columnidBaseColumnName uint32
	columnidDefinitionName uint32
}
type
  JET_COLUMNLIST = record
    cbStruct: DWORD;
    tableid: NativeUInt;
    cRecord: DWORD;
    columnidPresentationOrder: DWORD;
    columnidcolumnname: DWORD;
    columnidcolumnid: DWORD;
    columnidcoltyp: DWORD;
    columnidCountry: DWORD;
    columnidLangid: DWORD;
    columnidCp: DWORD;
    columnidCollate: DWORD;
    columnidcbMax: DWORD;
    columnidgrbit: DWORD;
    columnidDefault: DWORD;
    columnidBaseTableName: DWORD;
    columnidBaseColumnName: DWORD;
    columnidDefinitionName: DWORD;
  end;
const JET_COLUMNLIST = extern struct {
    cbStruct: u32,
    tableid: usize,
    cRecord: u32,
    columnidPresentationOrder: u32,
    columnidcolumnname: u32,
    columnidcolumnid: u32,
    columnidcoltyp: u32,
    columnidCountry: u32,
    columnidLangid: u32,
    columnidCp: u32,
    columnidCollate: u32,
    columnidcbMax: u32,
    columnidgrbit: u32,
    columnidDefault: u32,
    columnidBaseTableName: u32,
    columnidBaseColumnName: u32,
    columnidDefinitionName: u32,
};
type
  JET_COLUMNLIST {.bycopy.} = object
    cbStruct: uint32
    tableid: uint
    cRecord: uint32
    columnidPresentationOrder: uint32
    columnidcolumnname: uint32
    columnidcolumnid: uint32
    columnidcoltyp: uint32
    columnidCountry: uint32
    columnidLangid: uint32
    columnidCp: uint32
    columnidCollate: uint32
    columnidcbMax: uint32
    columnidgrbit: uint32
    columnidDefault: uint32
    columnidBaseTableName: uint32
    columnidBaseColumnName: uint32
    columnidDefinitionName: uint32
struct JET_COLUMNLIST
{
    uint cbStruct;
    size_t tableid;
    uint cRecord;
    uint columnidPresentationOrder;
    uint columnidcolumnname;
    uint columnidcolumnid;
    uint columnidcoltyp;
    uint columnidCountry;
    uint columnidLangid;
    uint columnidCp;
    uint columnidCollate;
    uint columnidcbMax;
    uint columnidgrbit;
    uint columnidDefault;
    uint columnidBaseTableName;
    uint columnidBaseColumnName;
    uint columnidDefinitionName;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; JET_COLUMNLIST サイズ: 68 バイト(x86)
dim st, 17    ; 4byte整数×17(構造体サイズ 68 / 4 切り上げ)
; cbStruct : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; tableid : JET_TABLEID (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; cRecord : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; columnidPresentationOrder : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; columnidcolumnname : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; columnidcolumnid : DWORD (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; columnidcoltyp : DWORD (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; columnidCountry : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; columnidLangid : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; columnidCp : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; columnidCollate : DWORD (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; columnidcbMax : DWORD (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; columnidgrbit : DWORD (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; columnidDefault : DWORD (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; columnidBaseTableName : DWORD (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; columnidBaseColumnName : DWORD (+60, 4byte)  st.15 = 値  /  値 = st.15   (lpoke/lpeek も可)
; columnidDefinitionName : DWORD (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; JET_COLUMNLIST サイズ: 80 バイト(x64)
dim st, 20    ; 4byte整数×20(構造体サイズ 80 / 4 切り上げ)
; cbStruct : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; tableid : JET_TABLEID (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; cRecord : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; columnidPresentationOrder : DWORD (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; columnidcolumnname : DWORD (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; columnidcolumnid : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; columnidcoltyp : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; columnidCountry : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; columnidLangid : DWORD (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; columnidCp : DWORD (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; columnidCollate : DWORD (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; columnidcbMax : DWORD (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; columnidgrbit : DWORD (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; columnidDefault : DWORD (+60, 4byte)  st.15 = 値  /  値 = st.15   (lpoke/lpeek も可)
; columnidBaseTableName : DWORD (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; columnidBaseColumnName : DWORD (+68, 4byte)  st.17 = 値  /  値 = st.17   (lpoke/lpeek も可)
; columnidDefinitionName : DWORD (+72, 4byte)  st.18 = 値  /  値 = st.18   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global JET_COLUMNLIST
    #field int cbStruct
    #field intptr tableid
    #field int cRecord
    #field int columnidPresentationOrder
    #field int columnidcolumnname
    #field int columnidcolumnid
    #field int columnidcoltyp
    #field int columnidCountry
    #field int columnidLangid
    #field int columnidCp
    #field int columnidCollate
    #field int columnidcbMax
    #field int columnidgrbit
    #field int columnidDefault
    #field int columnidBaseTableName
    #field int columnidBaseColumnName
    #field int columnidDefinitionName
#endstruct

stdim st, JET_COLUMNLIST        ; NSTRUCT 変数を確保
st->cbStruct = 100
mes "cbStruct=" + st->cbStruct