获取自定义内表或结构的字段信息

ADOX获取表的字段信息 ///////////////////////////////////创建数据库连接try{      m_pConnection.CreateInstance("ADODB.Connection");           CString strSRC;     CString DBPATH("C://F.MDB");        strSRC="Provider=Microsoft.JET.O 阅读详情
 
有时候我们要在程序运行的时候取得某个内表或者某个结构它的属性或者它的字段的属性,可能通过类CL_ABAP_TYPEDESCR和它的子类取得指定内表的属性。
类CL_ABAP_TYPEDESCR和它的子类的结构图
CL_ABAP_TYPEDESCR
  |
  |--CL_ABAP_DATADESCR
  |     |
  |     |--CL_ABAP_ELEMDESCR
  |     |--CL_ABAP_REFDESCR
  |     |--CL_ABAP_COMPLEXDESCR
  |         |
  |         |--CL_ABAP_STRUCTDESCR
  |         |--CL_ABAP_TABLEDESCR
  |
  |--CL_ABAP_OBJECTDESCR
        |
        |--CL_ABAP_CLASSDESCR
         |--CL_ABAP_INTFDESCR

例子1:
TYPES:
BEGIN OF TYP_DEPT,
ID(10) TYPE N,
NAME(10) TYPE C,
END OF TYP_DEPT.
DATA:
WA_DEPT TYPE TYP_DEPT,
DESCR_REF TYPE REF TO CL_ABAP_STRUCTDESCR.
FIELD-SYMBOLS:
<FS_DEPT> TYPE ABAP_COMPDESCR.
************************************************************************
* START-OF-SELECTION
************************************************************************
START-OF-SELECTION.
DESCR_REF ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_DATA( WA_DEPT ).
LOOP AT DESCR_REF->COMPONENTS ASSIGNING <FS_DEPT>.
WRITE: / <FS_DEPT>-NAME.
ENDLOOP.
 

例子2:
TYPES:
  my_table TYPE HASHED TABLE OF i WITH UNIQUE KEY TABLE LINE.
DATA:
  descr_ref TYPE ref to cl_abap_tabledescr.
FIELD-SYMBOLS:
  <key_comp_wa> TYPE abap_keydescr.
START-OF-SELECTION.
  descr_ref ?= cl_abap_typedescr=>describe_by_name( 'MY_TABLE' ).
  WRITE: / 'Typename      :', descr_ref->absolute_name.
  WRITE: / 'Kind          :', descr_ref->type_kind.
  WRITE: / 'Length        :', descr_ref->length.
  WRITE: / 'Decimals      :', descr_ref->decimals.
  WRITE: / 'Table Kind    :', descr_ref->table_kind.
  WRITE: / 'Initial Size  :', descr_ref->initial_size.
  WRITE: / 'Key Def Kind  :', descr_ref->key_defkind.
  WRITE: / 'Has Unique Key:', descr_ref->has_unique_key.
  WRITE: / 'Key Components:'.
  LOOP AT descr_ref->key ASSIGNING <key_comp_wa>.
    WRITE <key_comp_wa>-name.
  ENDLOOP.
 
例3:
DATA: BEGIN OF gs_partner,
partner TYPE bu_partner,
END OF gs_partner.

DATA rtti TYPE REF TO cl_abap_typedescr.
DATA length TYPE i.
DATA data_type TYPE string.

rtti = cl_abap_typedescr=>describe_by_data( gs_partner-partner ).
length = STRLEN( rtti->absolute_name ).
data_type = rtti->absolute_name+6(length).
 
例四:
DATA : components LIKE rstrucinfo OCCURS 0 WITH HEADER LINE.

DATA : t001 LIKE TABLE OF t001 WITH HEADER LINE.
CALL FUNCTION 'GET_COMPONENT_LIST'
EXPORTING
program = sy-repid
fieldname = 'T001'
TABLES
components = components.

LOOP AT components.
WRITE :/ components-compname , components-type.
ENDLOOP.
例5:
REPORT zzorgdataget .

TYPES: ty_poheader TYPE bapimepoheader.

DATA: dref TYPE REF TO data.
DATA: descr_ref1 TYPE REF TO cl_abap_structdescr.
DATA : l_string TYPE string.
DATA : l_object TYPE dd_x031l_table.
DATA : l_true TYPE abap_bool.
DATA : l_desc TYPE REF TO cl_abap_typedescr.

FIELD-SYMBOLS: <fs_line2> TYPE ty_poheader.

START-OF-SELECTION.

TYPES: my_struct TYPE mepoheader.

DATA:
my_data TYPE my_struct,
descr_ref TYPE REF TO cl_abap_structdescr.

FIELD-SYMBOLS:
<comp_wa> TYPE abap_compdescr.

START-OF-SELECTION.
descr_ref ?= cl_abap_typedescr=>describe_by_data( my_data ).

WRITE: / 'Typename :', descr_ref->absolute_name.
WRITE: / 'Kind :', descr_ref->type_kind.
WRITE: / 'Length :', descr_ref->length.
WRITE: / 'Decimals :', descr_ref->decimals.
WRITE: / 'Struct Kind :', descr_ref->struct_kind.
WRITE: / 'Components'.
WRITE: / 'Name Kind Length Decimals'.
LOOP AT descr_ref->components ASSIGNING <comp_wa>.
WRITE: / <comp_wa>-name, <comp_wa>-type_kind,
<comp_wa>-length, <comp_wa>-decimals.
ENDLOOP.
 
例6:
*&---------------------------------------------------------------------*
*& Report  ZCTEST06
*&---------------------------------------------------------------------*
*& 主要使用cl_abap_typedescr=>describe_by_data方法
*& 和子类cl_abap_structdescr中的components属性
*& components包含以下信息
*&     length    长度
*&     decimals  小数
*&     type_kind 类型
*&     name      字段名
*&---------------------------------------------------------------------*
REPORT  zctest06.
TYPE-POOLS abap.
TYPES:
  BEGIN OF ty1,
    p1(10) TYPE c,
    p2(5)  TYPE n,
    p3(3)  TYPE p DECIMALS 2,
  END OF ty1.
DATA: iw1 TYPE ty1,
      iw_comp TYPE abap_compdescr,
      ref_descr TYPE REF TO cl_abap_structdescr.
ref_descr ?= cl_abap_typedescr=>describe_by_data( iw1 ).
LOOP AT ref_descr->components INTO iw_comp.
  WRITE : /1 iw_comp-length,
          15 iw_comp-decimals,
          30 iw_comp-type_kind,
          45 iw_comp-name.
  CLEAR iw_comp.
ENDLOOP.
044.树莓派4B部署YOLO:从系统烧录到模型运行 《树莓派4B部署YOLOv8实战笔记》摘要:本文详细记录了在ARM架构树莓派4B上部署YOLOv8的全流程。关键点包括:必须使用64位系统并手动编译OpenCV(禁用FFMPEG、开启NEON优化);模型需在x86转换为TFLite格式(分辨率不超过320×320);推理代码使用tflite_runtime替代TensorFlow以减少内存占用;针对USB摄像头卡顿、内存泄漏等典型问题给出了解决方案。 阅读详情

相关推荐

用宝塔面板+CentOS 7.6,30分钟搞定DNF手游私服搭建(附全套资源下载)

本文详细介绍了如何使用宝塔面板和CentOS 7.6在30分钟内快速搭建DNF手游私服。通过图形化界面操作,无需复杂命令,即可完成服务端部署、MySQL数据库配置及客户端适配,适合Linux新手快速上手。

weixin_33737774的博客 598

获取自定义内表或结构的字段信息(CLASS:CL_ABAP_TYPEDESCR)

获取内表或某个结构它的属性或者它的字段的属性,可以通过类CL_ABAP_TYPEDESCR和它的子类取得。 类CL_ABAP_TYPEDESCR和子类的树状图 CL_ABAP_TYPEDESCR | |--CL_ABAP_DATADESCR | | | |--CL_ABAP_ELEMDESCR | |--CL_ABAP_REFDESCR | ...

王小磊 1万+

NFS共享速度慢?麒麟系统性能调优5个关键参数实测对比

本文针对银河麒麟服务器系统上NFS共享速度慢的问题,通过实测对比分析了五个关键调优参数。重点探讨了rsize/wsize传输块大小、TCP/UDP协议选择、sync/async模式权衡等,并结合麒麟系统特性提供了具体的优化建议与配置示例,旨在帮助用户有效提升国产化环境下的文件共享性能。

weixin_29254029的博客 334

ABAP 如何获取内表表结构、字段类型及长度

在学习动态编程的时候往往会对内表的结构进行操作,包括字段名,字段类型,以及字段的长度,如何快速的获取内表的这些信息呢?

酔墨诗欣的博客 3034

几何修复_ANSYS流体分析:几何前处理

建模及几何处理工具非常多,选择起来让人眼花缭乱。对于仿真而言,高效的对几何进行清理及生成符合仿真要求的几何至关重要。ANSYS SpaceClaim Direct Modeler是基于直接建模思想的新一代3D高效率建模和几何编辑修补软件。SCDM提供了当今最快速、最富有创意的直接建模解决方案。由于它的直接建模能力即使对于导入的其它3D模型(如catia、proe、solid works创建的几何)...

weixin_35778830的博客 2416

PaddleOCR PP-OCRv5实战:5分钟搞定身份证信息提取(附完整代码)

本文详细介绍了如何利用PaddleOCR的PP-OCRv5模型,在5分钟内快速搭建身份证信息提取流程。文章从环境搭建、核心代码实战出发,深入解析了PP-OCRv5针对证件识别的优化特性,并提供了从OCR结果到结构化数据的完整处理方案与避坑指南,帮助开发者高效实现AI驱动的自动化信息提取。

salt9的博客 782

abap如何得到数据库表字段信息及内表字段名

一、得到数据库字段信息  1、DDIF_FIELDINFO_GET  示例代码如下: DATA: it_tab TYPE TABLE OF dfies WITH HEADER LINE. PARAMETERS p_table TYPE ddobjname OBLIGATORY. CCALL FUNCTION 'DDIF_FIELDINFO_GET' EXPORTING tabname = p_table langu = sy-langu

newy的博客 4168

动画实例化:千人同屏不卡顿的秘密

是一种将大量相同骨骼结构的角色动画批量处理、批量渲染的技术。动画计算与渲染解耦,动画数据在CPU或GPU上批量计算,渲染时通过GPU Instancing一次性绘制大量角色。极大减少DrawCall,提升大规模角色(如MMO、RTS、群体AI等)动画的运行效率。动画Bake:编辑器下将所有动画片段Bake为骨骼矩阵纹理。实例参数管理:每个角色维护自己的动画状态、帧索引等。批量渲染:用DrawMeshInstancedIndirect等API批量渲染,Shader中采样骨骼数据。剔除与LOD。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 419

【原创】ABAP动态编程之功能实现

根据名字获取结构 DATA: STRUCTTYPE TYPE REF TO CL_ABAP_STRUCTDESCR. STRUCTTYPE ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( 'SPFLI' ). 根据变量获取结构 DATA: DATATYPE TYPE REF TO CL_ABAP_ELEMDESCR, W_CHAR T...

weixin_30563319的博客 498

多模态目标检测综述介绍及框架提供

多模态目标检测是计算机视觉领域的前沿方向,旨在通过融合不同传感器或数据源的信息(如可见光、红外、深度等),提升复杂场景下目标检测的准确性和鲁棒性。

Limiiiing的博客 4587

LPDDR6来了!到底比LPDDR5/5X强在哪?从速度到总线,技术细节一次说清!

LPDDR6不仅仅是速度快点、位宽大点那么简单,它是一次架构级的革新,从引脚、总线、时钟管理到Burst协议全部升级。🎯我们正在迈入一个“AI优先”的时代,内存架构也必须跟上。对于做芯片、做整机、做系统的你,理解LPDDR6的技术变化,提前规划测试方案,是现在就该启动的动作!

weixin_43199439的博客 1284

sap abap 简单的获取部分字段属性

WRITE: / '长度:', DESCR_REF->LENGTH. "char类型长度会乘2 货币类型长度会转成P类型的长度。WRITE: / '绝对类型名称:', DESCR_REF->ABSOLUTE_NAME.WRITE: / '类型:', DESCR_REF->TYPE_KIND.WRITE: / '小数:', DESCR_REF->DECIMALS.

qq_43773123的博客 623

在Ubuntu系统中安装和使用wxPython进行Python图形用户界面(GUI)开发

在本文中,我将向您展示如何在Ubuntu系统上安装和使用wxPython,并提供一些示例代码来帮助您开始使用这个强大的工具。在MyFrame的构造函数中,我们创建了一个wx.Panel和一个按钮,并将按钮的点击事件绑定到一个自定义的方法on_button_click上。最后,我们创建了一个wx.App的实例,创建了一个MyFrame对象并显示它,最后通过调用app.MainLoop()启动应用程序的主事件循环。这只是一个简单的示例,但它演示了如何使用wxPython创建一个基本的GUI应用程序。

qq_37934722的博客 1040

Java获取数据库表名、字段名、字段类型及注释等信息

以前有小伙伴在公众号留言问过如何通过java获取数据库的所有表、及表里字段的信息,只是私信回复过。在最近的项目中架构部提出了一个数据源的配置需求,就是需要配置公司所有系统...

一起理解技术趋势,沉淀长期价值 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

sqlserver 获取schema、表、字段等关键信息

之前在网上找了好多的sqlserver 获取schema、表、字段等关键信息的材料,但是没有一个完整的回去全部信息,我将所有的材料汇总,总结出获取完整的信息,,上代码: SELECT i.name , (case when a.colorder=1 then d.name else d.name end) 表名, a.colorder 字段序号,a.name 字段名, (case ...

aixin999的博客 4752

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

oracle 获取表的字段名,获取oracle 里的表名与字段

--数据库表名SELECT distinct A.OBJECT_NAME as TAB_NAME,B.comments as DESCR FROM USER_OBJECTS A, USER_TAB_COMMENTS B where A.OBJECT_NAME=B.TABLE_NAME--数据库字段select t.column_name as f_code,t.comments as f_nam...

weixin_32924669的博客 1757

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java获取mysql表结构_Java 获取数据库的库、表、字段信息 (仅供参考)

1 通过druid配置相关信息druid jar包com.alibabadruid1.0.14java 代码public void GetDbConnect() throws Exception {DruidDataSource dataSource = null;try{dataSource =new DruidDataSource();//设置连接参数 (***自己定义传递的参数***)da...

weixin_42187487的博客 3767

查询mysql所有表数据、字段信息

根据库名获取所有表的信息 SELECT * FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = 'erp'; 根据库名获取所有表名称和表说明 SELECT TABLE_NAME, TABLE_COMMENT FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = 'erp'; view: 根据库名获取所有的字..

u011250186的博客 4910

利用反射获取任意包下所有类、方法、字段的自定义注解信息

利用反射获取任意包下所有类、方法、字段的自定义注解信息

一恍过去 1万+

Java 获取数据库的库、表、字段信息

Java 获取数据库的库、表、字段信息

weixin_53729939的博客 3758

通过SQL 查询系统表获取表字段结构

之前在一家医疗软件公司实习过一段时间也学了一些东西,对于公司来说效率就是本钱,我实习的这家公司有一个能减少开发或找bug的时间的存储过程,特别时查找bug数据库数据有问题的时候可以快速了解某一表的结构然后做出判断。随后上网查找了一些相关资料 编写了查询表结构的存储过程 数据库创建后会用系统表用来存储该数据库的一些基本信息 需要显示的字段。 表名称、字段名称、数据类型、数据长度、表备注、字...

weixin_42084199的博客 1940

Sqlserver获取所有数据库名,表信息,字段信息,主键信息,以及表结构等。

--获取所有数据库名: SELECT name FROM master..sysdatabases WHERE name NOT IN ( 'master', 'model', 'msdb', 'tempdb', 'northwind','pubs' ) --获取某数据库的所有表: SELECT name FROM YiDianTongV2..sysobjects Where xtype='U

深南大道 1万+

mysql 所有表的字段信息_mysql如何查询所有表和字段信息

mysql查询所有表和字段信息的方法:1、根据库名获取所有表的信息SELECT*FROMinformation_schema.`TABLES`WHERETABLE_SCHEMA = 'erp';2、根据库名获取所有表名称和表说明SELECTTABLE_NAME,TABLE_COMMENTFROMinformation_schema.`TABLES`WHERETABLE_SCHEMA = 'erp'...

weixin_32534943的博客 3653

postgresql 获取表属性结构信息.

如何获取用户自定义表结构信息 1. 获取表中普通信息:如字段名,字段类型等等。 SELECT column_name, data_type, ordinal_position, is_nullable ...

choulongtun5848的博客 854

获取MSSQL 表结构中字段的备注、主键等信息

1、MSSQL2000 SELECT     表名       = case when a.colorder=1 then d.name else '' end,     表说明     = case when a.colorder=1 then isnull(f.value,'') else '' end,     字段序号   = a.colorder,     字段名    

全欣 的专栏 4857

获取ORACLE和SQL SERVER表或视图结构(字段名、字段长度、精确位数、是否可空、字段描述、字段默认值、主键字段)

获取ORACLE 和 SQL SERVER表或视图结构(字段名、字段长度、精确位数、是否可空、字段描述、字段默认值、主键字段) -- ORACLE获取表结构 SELECT UTCS.COLUMN_NAME AS COLNAME, CASE WHEN CHAR_LENGTH > 0 THEN UTCS.DATA_TYPE || '(' ...

WoodBruin 601
上一篇: 获取自定义内表或结构的字段信息
下一篇: 从程序上传数据到服务器文件中
webmastercn
博客等级 码龄24年 4粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值