ホーム › Storage.Jet › JET_COLUMNLIST
JET_COLUMNLIST
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| cbStruct | DWORD | 4 | +0 | +0 | この構造体のバイトサイズ。 |
| tableid | JET_TABLEID | 8/4 | +8 | +4 | 列一覧が格納された一時テーブルのテーブルID。 |
| cRecord | DWORD | 4 | +16 | +8 | 一時テーブル内のレコード(列)数。 |
| columnidPresentationOrder | DWORD | 4 | +20 | +12 | 表示順序列の列IDを示す値。 |
| columnidcolumnname | DWORD | 4 | +24 | +16 | 列名列の列IDを示す値。 |
| columnidcolumnid | DWORD | 4 | +28 | +20 | 列ID列の列IDを示す値。 |
| columnidcoltyp | DWORD | 4 | +32 | +24 | 列型列の列IDを示す値。 |
| columnidCountry | DWORD | 4 | +36 | +28 | 国コード列の列IDを示す値。 |
| columnidLangid | DWORD | 4 | +40 | +32 | 言語ID列の列IDを示す値。 |
| columnidCp | DWORD | 4 | +44 | +36 | コードページ列の列IDを示す値。 |
| columnidCollate | DWORD | 4 | +48 | +40 | 照合順序列の列IDを示す値。 |
| columnidcbMax | DWORD | 4 | +52 | +44 | 最大長列の列IDを示す値。 |
| columnidgrbit | DWORD | 4 | +56 | +48 | grbit列の列IDを示す値。 |
| columnidDefault | DWORD | 4 | +60 | +52 | 既定値列の列IDを示す値。 |
| columnidBaseTableName | DWORD | 4 | +64 | +56 | 基底テーブル名列の列IDを示す値。 |
| columnidBaseColumnName | DWORD | 4 | +68 | +60 | 基底列名列の列IDを示す値。 |
| columnidDefinitionName | DWORD | 4 | +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 Structureimport 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: uint32struct 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