当前位置:文档之家› DEFORM-3D学习笔记

DEFORM-3D学习笔记

DEFORM-3D学习笔记
DEFORM-3D学习笔记

问题:1.如何用测量工具测量其底部过渡圆角的半径?

2.如何确定总模拟步长、存储步长、计算步长和计算时间?还

有模具运动速度?

3.接触容差tolerance含义?其大小对结果有什么影响,一般设

定为多少合适?

主界面的【summary】按钮显示当前步骤的模拟信息,包括模具及工件的各种信息;【preview】显示用户在后处理中处理的最后图形;【message】显示模拟进程,用户可以观察目前模拟进行到多少步,每步及每子步模拟所需的时间,以及每子步的模拟误差;【log】显示模拟日志,可以看到模拟过程中每一步的起始和终止时间,及模拟出错的各种信息

前处理窗口:点击【DEFORM-3D Pre】进入DEFORM-3D的通用前处理界面。点击【Machining [Cutting]】进入DEFORM-3D的机加工向导界面,它包括车削,钻削,铣削等机加工工艺。点击【Forming】进入DEFORM-3D的成形向导界面,它包括冷成形,温成形,热成形等工艺。点击【Die Stress Analysis】进入DEFORM-3D的模具分析向导界面。点击【Cogging】进入DEFORM-3D的粗轧向导界面。

模拟控制:点击【Run (options)】进入模拟选择对话框,有多个处理器时,选择multiple processor对话框,并进行个处理器任务设置,若是单机则不要选此项,否则模拟无法进行;点击【Batch Queue 】进入模拟任务队列设置对话框,用户有多任务时,可安排模拟的先后顺序;点击【Process Monitor】进入模拟控制菜单,点击按钮abort来结

束当前模拟任务,但模拟会完成当前步。若要求立即停止模拟,可点击abort immediately按钮;点击【Add to Queue】可随时添加模拟任务。

后处理窗口:用户可在模拟任务正在进行时点击【DEFORM-3D Post】进入后处理界面,

STL文件的生成:

我没有用过pre/E,但是我用solidworks造型时,插入合适的坐标系,并在保存为stl文件时,需设定选项,这样才能保证导入DEFORM前处理的几何坐标系和你在造型软件中的一致,也就不用再花费过多时间调整各objects间的位置了. 我是用Solidworks造型的,比如一个简单的圆柱体镦粗过程,在装配图中你应该添加坐标系,将坐标系的原点设在冲头的圆心,并且在保存为stl文件时,设定"保存为"对话框中的选项,如果不知是否正确,可以选择简单的模型试一下,(将几何调入DEFORM前处理并划分网格,然后看结点坐标),这样就能保证DEFORM中的几何坐标系和你在造型软件中的一致.

6.2 文件视图功能操作

正负代表视图法线方向,法向由荧屏向外为正

6 环境菜单设置

点击【options】出现下拉菜单——点击【environment】

6.2 前处理功能操作

设置好工作目录后进入前处理窗口。退出前处理窗口时,如果设置的用户类型是初级或者中级,会弹出“询问退出对话框”,询问用户是

否存储当前工作。若设置为高级,次对话框不会显示,并且任何未保存的数据都会丢失。

6.2.1 模拟控制窗口

该窗口中有许多变量需要用户设置

Main菜单——【units】选择单位制-国际单位制和英制,允许用户调入模型后在设置单位制。【Type】模拟方式选择栏,【incremental】是增量模拟方式,【steady state】稳态模拟方式,一般模拟问题应选择增量模拟方式。若果用户模拟的是车削或拉伸过程,并且使用的是欧拉计算方法,则选择稳态模拟方式。【Mode】模拟类型选择栏,【Heat Transfer】是传热模拟,【Deformation】变形模拟,【Transformation】相变模拟,【Diffusion】扩散模拟,【Grain】晶粒度模拟,【Heating】热处理模拟。

Step菜单——模拟控制步菜单,用户可以设置模拟的起始步序号,模拟步数,存储数据的间隔步数。其余两个用户不需要修改

Stop菜单——如果两个模具之间的距离是停止模拟的标准,则点击Die Distance按钮,按如下步骤操作:选定参考物1——点击模具地面一点,相应坐标值会出现在Coord栏中——选定参考物2——点击顶面一点,相应坐标值会出现在Coord栏中——打开测距方式【Method】一栏选择Z Distance——在【Distance】一栏中填入测出的距离——点击OK。

Remesh Criteria菜单——网格重划分标准菜单。重划分网格后原节点信息不丢失。设定变形物体重划分网格标准,有两种选择,一个

是Absolute(绝对值),一个是Relative(相对值),用户一般按相对值设定。

Iteration菜单——求解,迭代方法设定菜单。对于典型的成形模拟,系统默认的方法就能计算很好,系统默认的迭代方法是直接迭代法。系统默认的收敛误差值对常规模拟也是合适的,不需修改。以下三种情况可以使用松弛求解法,利用直接迭代法来模拟:

(1)弹性或弹塑性物体

(2)多个变形物体

(3)模具是由载荷步控制的。

Process Condition菜单——工艺条件设定菜单。

Advanced菜单——高级设定菜单。当前模拟时间在【current global time】栏中显示,用户通过此栏可知目前模拟经过的时间。点击【user Defined】用户可设定用户变量,可以添加自定义变量不超过10个

6.2.2 材料窗口

Plastic(塑性特性)、Elastic(弹性特性)、Thermal(热传递特性)、Grain(晶粒度)。与温度有关特性可通过点击其右边编辑按钮进行编辑。【Flowstress】栏是流变应力方程,由图表形式描述。允许用户修改,步骤如下:

(1)将试验测得应变值写入应变对话框,温度写入温度对话框;(2)应变率写入应变率对话框中,【X Axis】栏选择【Strain】。(3)在下面的应力、应变、应变率数组栏中填入对应的应力

(4)点击【Apply】出现流动应力曲线,若正确点击【OK】(5)菜单回到材料菜单栏,点击【Save in Lib】存储数据。若用户想以.k文件的形式存储此材料文件,可点击【Export】,

存储到用户指定目录,下次用时可直接从目录中调入。

6.2.3 定位窗口

五种定位物体的方法——【Offset】平移、【Interference】接触、【Rotational】旋转、【Drop】下落、【Drag】拖拉。

平移——一种是按坐标平移:选择要定位的物体,点击距离矢量栏,输入相对坐标值;一种是两点定位:鼠标点击要定位物体上的一点,接着点击移动的终点,也可直接输入绝对坐标值。点击【Apply】——点击【OK】.

接触——选择定位物体和参考物-在【Approach Direction】前进方向一栏定义移动方向-在【Interference】定义接触值-点击【Apply】——点击【OK】.

旋转——在【Center】指定旋转中心,【Axis】指定旋转轴和【Angle】相对旋转角度(可用鼠标指定中心和轴也可直接输入值)

下落——此法对将物体定位于模具中非常有效。指定下落方向和接触深度值,若允许旋转下落,请点击旋转轴设定。

6.2.4 对象间关系定义窗口

点击+按钮增加定义对象间关系对-定义主仆关系-对象间关系信息定义:摩擦系数【Friction】、剪摩擦【Shear】、库伦摩擦【Coulomb】、摩擦值【value】。允许用户改动对象间关系容差,用户可以在

【Tolerance】栏改动系统给定的值。

6.2.5 数据库产生窗口

指定目录-点击【Check】检查模拟设定的信息是否满足生成数据库的条件-点击【Generate】生成数据库

With Constant Die Displacement(根据模具位移来确定计算步长方式)、Solution Steps(计算步长)、Primary Die(主模具)6.3 后处理功能操作

在主窗口点击数据库文件,进入后处理窗口

6.3.1 物体树显示操作按钮功能介绍

Show item(物体树中的状态变量显示)、【Show backface】后表面显示

6.3.2 模拟分析功能介绍

【Summary】功能是提取模拟过程的概要信息;

【Graph(Load stroke)】功能是提取模拟过程受力物体的载荷,以图形形式表达。Stroke(模拟步)、torque(扭矩)。

点击【Apply】出现图形,判断正确后点击【OK】.

Point tracking(对变形体的点追踪):点击此按钮在点追踪对话框中输入追踪点坐标,也可用鼠标直接点击变形体上的点,最多同时跟踪10个点-NEXT-选取存储文件方式,文件时二进制文件,可用记事本等打开-【Finish】。等待一段时间,系统会提取此点的所有信息,配合状态变量按钮就可读取此点状态变量信息。

Flow Net-设定流动网格。点击按钮-选择起始步和终点步-下一步-

选择流动网格形状-下一步-区域选择对话框-下一步-定义网格尺寸-下一步-选择始末存储方式-完成

State Variable Between Two Points-绘制两点间状态变量分布曲线:输入始终点坐标,也可在窗口中点击变形体上两点作为始末点,接着点击【Calculate】,在变形体上出现分布点,接着点击【State Variable】按钮,选择要分析的状态变量,则可绘制出两点间状态变量的分布曲线

Slicing-对物体进行剖切。两种剖切方式:一种是一点和一方向矢量;一种是三点法,然后输入数值,确定剖切正确后,点击【OK】Mirror/Rot Symmetry-镜像物体

镜像功能分为两种,一种是对称面镜像,一种是周向镜像。打开【Add】按钮,接着点击对称面,则对称图形显示在窗口中。【Delete】删除对称图形,用鼠标点击要删除的物体即可。

Date Extraction-提取选定步的变量信息。首先在模拟步中选定要分析的模拟步-选定要分析的物体-在【Variable】栏中选定要分析的变量-点击【Extract】,选定存储路径保存,可用记事本等打开。State Variable-选取要分析的变量。选定要分析的变量-【Type】栏中选取变量显示方式(等高线、云图等显示方式)-选取显示比例-【OK】

Animation set up-模拟过程的动画设置及录制。点击此按钮-【File】栏中设定动画文件存储的位置-填写动画文件的名称-设定动画文件的第一个图片的名称。把动画文件一图片的格式的存储,用Defplay

软件播放。

Animation control-播放录制的动画。

6.3.3 其他后处理操作按钮功能介绍

Chapter 7 锻压模拟

任务:模拟计算步长的确定

DEFORM-3D主窗口更改工作目录

创建新项目:点击新建——【Deform-3D preprocessor】——next ——【Under current selected directory】——next——输入项目名称——finish——进入前处理窗口——进入模拟设定窗口——【Simulation Title】一栏填入模拟名称Block——激活【Deformation】项——【OK】

7.1.3 输入对象数据

1.软件会在物体树中自动创建默认名为Workpiece的#1对象,可以自己加或减其他对象进入物体树。更改对象名(点击#1对象-物体信息栏中点击【General】-在【Object name】填入名称)。一般输入模拟的#1对象为变形体应在【General】中设定对象类型为Plastic(塑性体)。【Elastic弹性体;】

2.输入物体几何形状。点击Geometry(几何形状)-Import

3.划分网格

设定好单元数量-preview-generate

4.材料定义

7.1.4 输入模具

添加对象,#2对象已被激活,系统默认名为Top Die,类型为刚体(rigid),激活【Primary Die】主模具开关。

检查对象的几个问题:点击check GEO.对以封闭的几何体,必有一个面,零个自由边,零个无效的实体。检查对象外法线方向:点击show/hide normal。正确方向是指向对象外的,若反了点击Reverse GEO进行修正。

添加3号对象,也是刚体,对于刚体,不用划分网格,不需定义材料特性,因为刚体被认为不变形。

7.1.5 设置温度

工件、模具都设定。默认为室温(68℉或20℃)

7.1.6设置模具的运动

7.1.7 模拟控制设定

打开【Step】设置开始模拟数(-1)负号表示它是重新划分网格的起始步,由前处理读入;设置模拟步数(20),这意味着若模拟计算未被中止,整个过程将分20步完成;设定Step Increment to Save 为2,这表示每模拟2步,会将中间模拟阶段结果写入数据库;设定Primary Die为2。确定模拟计算步长:点击测量工具,并点击两相邻节点,最短单元尺寸为0.5in,对于简单模拟而言,我们可用该值1/3,即设置With Constant Die Displacement类型,值为0.15in/step。另外,单击Advanced 1,设置Maximum Contact time=1,这样可以防止任意两步之间出现次步计算,同时也可以加快模拟过程-OK

如何确定模拟计算步长?软件规定了两种:分别有时间和模具行程决定。对于通常的变形问题,采用行程决定方式较好。对于几何形状简单,边角无流变或其他局部严重变形的问题,步长可选模型中较小单元边长的1/3为参考标准;对于复杂几何形状诸如有飞机或平面模外挤,步长则应选1/10,步长太长可能会引起网格的迅速蜕变,儿太小会引起不必要的计算时间消耗。

7.1.8 对象间关系设定

系统默认了主仆关系,模具与工具间是接触关系,不涉及传热,但涉及摩擦问题,因此要定义他们之间的摩擦系数在软件中对于具有相同接触信息特征的关系对,定义一个后,可点击Apply to other relations,可以将第一个定义的关系信息复制到所有的关系对中。然后设定接触容差:值要合理,太大反映在模具上的接触点过多,这可导致工件网格的变形,相反,太小则意味着模具与工件没接触。设定好后单击generate all 生成接触

7.1.9 生成数据库文件

以.k文件形式存储模拟项目的数据信息,用记事本打开,也可直接修改先check看有没错在generate,顺便存储下吧

7.2 进行锻压模拟计算

把数据提交给FEM运算器

7.3 锻压模拟后处理

点击Block_forging.DB文件-点击【DEFORM-3D post】进入后处理

7.3.1 步列的选择

每一步包含了当前的数据信息,可以查看任意对象在模拟过程中有关变量的信息。本例选取第十六步

7.3.3 工件上点追踪

点击追踪按钮,弹出对话框,选择步列,是步列到工件未变形时,用鼠标单击工件上3个点,他们坐标显示在对话框中,下一步-默认-完成。选择16步,并打开点追踪,可以看到3个点的坐标,他们经过变形后的坐标值。图中竖线代表当前步列。在物体栏中鼠标右键单击点追踪图标-选择第二栏即可删除追踪图

7.3.4 对象上剖切面的选择

选定工件-单击剖切面按钮-打开Slicing窗口。本例采用一点和一法矢量的方法确定剖切面。操作步骤如下:

(1)在工件中部表面上选一点

(2)设定法矢量方向为X方向(1,0,0)

(3)显示方式分别为Curve(曲线形式)、Plane(平面)、Curve+Plane。

剖切面选定后就可以选择状态变量分析了

第八章方环镦粗模拟

分析对称工件,创建辅助对称平面

8.4 设定对称边界条件

本例1/16方坯具有三个对称面,施加三个对称面的步骤:

(1)激活工件

(2)点击边界条件加载BCC按钮,弹出菜单,点击plane按钮,接着用鼠标点击工件的垂直面

(3)点击“添加”按钮在【Symmetry plane】拦下出现对称面的法矢量(1,0,0)。继续添加

接触容差是点击按钮设定还是自己输入数值?

8.6 模拟控制信息设定和生成数据库

总模拟步、增步根据什么原则设定的?

确定计算步长同样用测量尺测出较小网格的尺寸,平均尺寸取1/3定位计算步长

储存-生成数据库

对象间关系设定之前进行模拟控制信息设定

8.7 后处理

由于模拟采用了对称技术,仅用工件的1/16进行计算,为了反映整个物体的变形过程,需要使用镜像功能,重新构造整个零件,具体步骤:

(1)激活Top Die-点击隐藏(show object),抑制它的显示

(2)镜像工件,add添加,delete删除。点击对称面即可生成镜像图

模拟过程的动画制作:点击Animation set up-弹出对话框-setting 设置动画参数-save(系统启动录制动画过程。录制的动画要选择一状态变量)-close

第九章道钉成形模拟

介绍了软件的换模具技术

整个模拟分四个阶段:

(1)工件出炉到模具上有10s的间隔时间,在这10s内,工gia 呢与外界存在热传导现象。近视一个热传导模拟

(2)工件锻造之前,在下模具上要停留2s。该过程也发生热传导现象

(3)第一模锻过程

(4)第二模锻过程,要换模具

由于对称原因,采用1/4对称体来模拟

9.2 工件与外界的热传导模拟

9.2.1 创建新项目

9.2.2 模拟控制设定【这次是先设定控制信息】

确定模拟名称和操作名称,单位取英制,选中Heat Transfer(热传导),关闭Deformation(变形)

热传导时间10s。由于仅是热传导分析过程,所以模拟步仅与时间有关,因此模拟总部数取50步,相应每步就0.2秒。在【Step】设定。解题步长定义选项栏中,选择With Constant Time Increment 9.2.3 创建新对象

第一模拟虽然用不到上、下模具,但为了节省其余过程的模拟时间,所以把模具也加入物体树。

改变工件名称、类型、温度;添加模具并设置下模具为主模具,检查

它们几何特征的正确性

单击View fit按钮,使显示窗口尺寸合适

9.2.4 工件划分网格

第一模拟过程仅工件与外界热传导,因此工件要网格划分。后面过程中,存在工件与模具的热传递,则模具也要网格划分,不过模具的划分将放到相应的模拟过程中去。

网格化分有两种:相对和绝对划分

a.相对网格划分方式,使用相对网格设置方式,用户仅需指定固体单元的数量,无论物体形状多磨复杂,单元数量必须固定

b.绝对网格划分方式,使用绝对网格设置方式,系统决定网格划分的总数,随着物体形状的复杂,单元数量也随之增加

不论哪种方式,都依靠划分网格权重(Weighting Factors使用默认值)来分配物体上各部分的单元大小

前面实例均是用相对网格方式划分的,用绝对方式在于增加模拟的正确性

本例用绝对方式。为了决定网格划分的最小尺寸,需要测量模具的最小特征尺寸,其必须满足的条件是成形过程中它的形状会反映在工件上,也就是说有工件材料要流过此特征。最小特征的选取是指整个模拟过程的最小特征

四个模拟过程中,发现第四个模拟过程主模具的底部过度圆角最小,因此添加对象4-上模到物体树,该其名称为Top Die2,输入几何图形,接下来使用测量工具测量其底部过渡圆角的半径,单元尺寸必须

小于它(半径)的一半.本例0.04in作为工件划分网格的最小绝对尺寸

尺寸大小确定后,删除对象4-激活工件-划分网格-单击【Detailed】的设置栏,改变网格划分方式为绝对方式,设置最小单元尺寸为0.04in,尺寸比率为3-单击Surface mesh-单击Solid mesh生成体网格

9.2.5 定义工件的传热边界条件

在第一模拟过程中只对工件设定:

(1)激活工件

(2)单击BCC-单击【Thermal】栏的Heat Exchange With Environment(与环境发生热传递)

(3)定义环境温度。在Relevant settings中点击Environment 设置环境温度为室温68℉

(4)在选择节点对话框中,选择Surface patch(表面)按钮【plane只能是平面】鼠标点击上下表面和圆柱面。热交换

边界条件只对暴露在环境中的外表面进行设定,接下来点击

Add Boundary Condition

9.2.6 输入工件的材料

9.2.7 保存模拟文件生成数据库进行模拟

设定完成后保存模拟项目的K文件-生成数据库

9.2.8 后处理

激活Spike .DB进入后处理。选择温度作为分析对象(点击More

会出来一对话框,接着打开比例选择(Scaling)按钮-global-Apply-Close-点击step setup选取第50步,此时视窗显示第50步的温度分布情况

为了使工件上温度分布显示的颜色更接近真实,可以点击窗口中的彩色条,接着单击彩色条类型ColorBar Type按钮-点选Temperature 9.3 工件与下模热传递模拟

本节模拟工件在锻造前,要停留在下模具上2s的热传递过程。上节模拟的最后一序列步调入前处理中

9.3.1 前处理中打开数据库文件

打开主窗口,设置工作目录到Spike Forging,激活Spike.DB数据库文件进入前处理-弹出一对话框询问打开哪个序列步,此处选择第50步-OK

为了证实50步是工件与环境发生10s热传递后的最终温度,可点击物体信息栏中是平【General】,看到默认温度是1800~1989℉。同样,温度梯度也可观察步骤如下:

(1)点击【Advanced】

(2)点击【Node Date】弹出一对话框

(3)点击【Thermal】

(4)点击【Node Temperature】栏右的Plot Variable按钮

以上完成后可看到前处理窗口中温度分布

9.3.2 模具网格划分及边界条件设定

模具与工件接触,之间有热传递,所以模具温度也要设定,方法两种:

(1)模拟全过程中不考虑模具温度的变化,设定为常值。若用了此技术则模具不需划分网格,温度设定只需单击【General】

来设定

(2)模拟过程中温度变化。这在模拟中是比较准确的方法,但要划分网格。该技术将用在本节模拟中

首先,对上模具温度设定及网格划分和边界条件设定:

(1)激活Top Die

(2)物体信息栏中点击【Property】,打开特征设置对话框-单击【Thermal】,弹出一下拉菜单

(3)在参考温度【Reference Temperature】栏中填入68℉(4)在截止温度【truncation Temperature】栏中填入300 (5)【Mode】栏中选择Use All Nodes

(6)【Min Temperature】栏中填入68

(7)【Max Temperature】栏中填入300

(8)温度设定完成后单击Mesh,接受系统默认值,单击Generate Mesh

(9)单击BBC-单击【Thermal】中Heat Exchange With Environment。选上模具的顶面、内表面、外圆柱面-单击

Add设定此三面为热交换边界条件

接下来,对下模具温度设定及网格划分和边界条件设定:

(1)激活Bottom Die

(2)物体信息栏中点击【Property】,打开特征设置对话框-单击

【Thermal】,弹出一下拉菜单

(3)在参考温度【Reference Temperature】栏中填入68 (4)在截止温度【truncation Temperature】栏中填入300 (5)【Mode】栏中选择Use All Nodes

(6)【Min Temperature】栏中填入68

(7)【Max Temperature】栏中填入300

(8)温度设定完成后单击Mesh,接受系统默认值,单击Generate Mesh

(9)单击BBC-单击【Thermal】中Heat Exchange With Environment。选下模具除对称面之外的所有表面-单击

Add设定为热交换边界条件

9.3.3 输入模具材料

9.3.4 工件的定位

第二模拟是工件锻造前,停留在下模具上2s上,有接触则要定位(1)单击定位按钮Object Positioning

(2)单击接触定位Interference,选择定位物体项(Object Positioning)为工件(Billet),选择参考物体项(Reference)为Bottom Die

(3)选择-z方向为移动方向

(4)单击【Apply】,观察工件是否移到了下模上表面

(5)定位合理后,单击Ok

9.3.5 对象间关系设定

上模与工件尚未接触,不进行设定,俺系统默认值就可以了。下模与工件接触,本例仅涉及传热问题,不涉及摩擦问题,因此在接触信息栏中定义他们之间的传热系数

在【Thermal】下拉菜单,传热系数(Heat Transfer Coefficient)栏选择常数【constant】系数-单击右边抽屉键,选择Free resting 项,系数0.0003自动显示-关闭-设定接触容差0.0112in-Generate all-OK

9.3.6 模拟控制设定

模拟名称不变。操作名称改为Dwell,单位英制,仅热传导

传导时间共2s,由于仅是热传导分析过程,所以模拟步仅与时间有关,总步10步,每步0.2秒,每隔5步存一次。由于此模拟是上一模拟的继续则起始步为-51步,而且这个模拟数据文件将加到Spike.DB数据库文件的最后,即两个模拟过程将按照序列步形成一个数据库文件(注:没有主模具)。

9.3.7 保存项目文件、生成数据库进行模拟

信息设定完成后as,存储目录文件Spike_Dwell.KEY。

生成数据库-类型选择Old-【Check】-【Generate】-【Close】运行

9.3.8 后处理

单击选步序数Step setup-单击【Style】栏中的All观察所有序列步-【OK】关闭菜单

为了更好的理解工件与下模接触时的激冷作用,希望显示窗口仅工件

显示,激活它点击Single object mode

选择温度分析-打开比例选择按钮Local global-OK-单击彩色条类型-温度

9.4 第一锻造过程

第二个模拟的最后一个序列步调入此前处理中

9.4.1 打开模拟数据文件

选择第60步

9.4.2 模拟控制设定

单击模拟控制按钮-【Main】中模拟名称不变,操作名称改为Forging Blow 1,操作序列(Operation Number)中选择3,打开变形分析(Deformation),保持热传导(Heat Transfer)打,此时两种分析均被激活,则热力耦合分析被建立

第一锻造模拟总步数的确定与工件的最小网格和上模压下量有关。压下量是0.75In,工件的最小网格尺寸为0.06in,故取0.025in(最小网格尺寸的1/3到1/2)作为计算步长,用上模压下量除以计算步长得总模拟步长30步。

模拟步从-61步开始,数据文件加到原文件的最后

设定【Step】,总模拟步30步,每5步存一次,主模具为Top Die (前两个模拟无主模具,因为是热传导模拟不涉及变形),解题步长定义栏选择With Constant Die Displacement 一项,填入0.025in-Ok

9.4.3 上模定位

OB开发手册中文版

OB开发手册中文版

Contents [hide]1 简介 ? 1 简介 ? 1.1 开发概述 ? 1.2 开发方法 ? 1.3 组织开发工作 ? 1.4 标识符命名标准 ? 1.4.1 数据库元素 ? 1.4.2 MVC目录 ? 1.4.3 存储过程语法 ? 1.5 目录结构 ? 1.6 风格指南 ? 1.6.1 逻辑比较 ? 1.6.2 逗号分隔列表 ? 1.6.3 圆括号中的空格 ? 1.6.4 SELECT INTO和INSERT INTO ? 1.6.5 SQL关键字 ? 1.7 编译程序 ? 1.7.1 命令行编译任务 ? 1.7.2 开发环境 ? 1.7.3 生产环境 ? 1.8 从源代码构建 ? 1.8.1 安装Subversion ? 1.8.2 从Subversion中检出源代码 ? 1.8.3 快速构建指南 ? 1.9 集成开发环境 ? 2 Openbravo数据模型 ? 2.1 存储的数据库对象 ? 2.2 实体-关系(ER)图 ? 2.3 创建存储过程 ? 2.3.1 AD_PInstance和AD_PInstance_Para表 ? 2.3.2 存储过程的输入参数 ? 2.3.2.1 从AD_PInstance表中获取有用的信息 ? 2.3.2.2 AD_Update_PInstance存储过程 ? 2.3.2.3 例外和错误管理 ? 2.4 存储过程语法的建议 ? 2.4.1 通用规则 ? 2.4.1.1 游标 ? 2.4.1.2 数组 ? 2.4.1.3 ROWNUM ? 2.4.1.4 %ROWCOUNT ? 2.4.1.5 %ISOPEN,%NOTFOUND ? 2.4.2 表 ? 2.4.3 函数 ? 2.4.4 存储过程

PostgreSQL学习手册

tgreSQL学习手册(五) 函数和操作符 阿里云携手开源中国众包平台发布百万悬赏项目? 一、逻辑操作符: 常用的逻辑操作符有:AND、OR和NOT。其语义与其它编程语言中的逻辑操作符完全相同。 二、比较操作符: 下面是PostgreSQL中提供的比较操作符列表: 操作符描述 <小于 >大于 <=小于或等于 >=大于或等于 =等于 !=不等于 比较操作符可以用于所有可以比较的数据类型。所有比较操作符都是双目操作符,且返回boolean类型。除了比较操作符以外,我们还可以使用BETWEEN语句,如: a BETWEEN x AND y 等效于 a >= x AND a <= y a NOT BETWEEN x AND y 等效于 a < x OR a > y 三、数学函数和操作符: 下面是PostgreSQL中提供的数学操作符列表: 操作符描述例子结果 +加 2 + 35 -减 2 - 3-1 *乘 2 * 36 /除 4 / 22 %模 5 % 41 ^幂 2.0 ^ 3.08 |/平方根|/ 25.05 ||/立方根||/ 27.03 !阶乘 5 !120 !!阶乘!! 5120 @绝对值@ -5.05 &按位AND91 & 1511 |按位OR32 | 335

#按位XOR17 # 520 ~按位NOT~1-2 <<按位左移 1 << 416 >>按位右移8 >> 22 按位操作符只能用于整数类型,而其它的操作符可以用于全部数值数据类型。按位操作符还可以用于位串类型bit和bit varying, 下面是PostgreSQL中提供的数学函数列表,需要说明的是,这些函数中有许多都存在多种形式,区别只是参数类型不同。除非特别指明,任何特定形式的函数都返回和它的参数相同的数据类型。 函数返回类 型 描述例子结果 abs(x)绝对值abs(-17.4)17.4 cbrt(double)立方根cbrt(27.0)3 ceil(double/numeric)不小于参数的最小的整 数 ceil(-42.8)-42 degrees(double) 把弧度转为角度degrees(0.5)28.6478897565412 exp(double/numeric)自然指数exp(1.0) 2.71828182845905 floor(double/numeric)不大于参数的最大整数floor(-42.8)-43 ln(double/numeric)自然对数ln(2.0)0.693147180559945 log(double/numeric)10为底的对数log(100.0)2 log(b numeric,x numeric)numeric指定底数的对 数 log(2.0, 64.0) 6.0000000000 mod(y, x)取余数mod(9,4)1 pi() double"π"常量pi() 3.14159265358979 power(a double, b double)double求a的b次幂power(9.0, 3.0)729 power(a numeric, b numeric) numeric求a的b次幂power(9.0, 3.0)729 radians(double)double把角度转为弧度radians(45.0)0.785398163397448 random()double 0.0到1.0之间的随机 数值 random() round(double/numeric)圆整为最接近的整数round(42.4)42 round(v numeric, s int)numeric圆整为s位小数数字round(42.438,2)42.44 sign(double/numeric)参数的符号(-1,0,+1) sign(-8.4)-1 sqrt(double/numeric)平方根sqrt(2.0) 1.4142135623731 trunc(double/numeric)截断(向零靠近)trunc(42.8)42 trunc(v numeric, s int)numeric 截断为s小数位置的数 字 trunc(42.438,2)42.43 三角函数列表: 函数描述 acos(x)反余弦

PostgreSQL学习手册(PLpgSQL过程语言)

一、概述: PL/pgSQL函数在第一次被调用时,其函数内的源代码(文本)将被解析为二进制指令树,但是函数内的表达式和SQL命令只有在首次用到它们的时候,PL/pgSQL解释器才会为其创建一个准备好的执行规划,随后对该表达式或SQL命令的访问都将使用该规划。如果在一个条件语句中,有部分SQL命令或表达式没有被用到,那么PL/pgSQL解释器在本次调用中将不会为其准备执行规划,这样的好处是可以有效地减少为PL/pgSQL函数里的语句生成分析和执行规划的总时间,然而缺点是某些表达式或SQL命令中的错误只有在其被执行到的时候才能发现。 由于PL/pgSQL在函数里为一个命令制定了执行计划,那么在本次会话中该计划将会被反复使用,这样做往往可以得到更好的性能,但是如果你动态修改了相关的数据库对象,那么就有可能产生问题,如: CREATE FUNCTION populate() RETURNS integer AS $$ DECLARE -- 声明段 BEGIN PERFORM my_function(); END; $$ LANGUAGE plpgsql; 在调用以上函数时,PERFORM语句的执行计划将引用my_function对象的OID。在此之后,如果你重建了my_function函数,那么populate函数将无法再找到原有my_function函数的OID。要解决该问题,可以选择重建populate函数,https://www.doczj.com/doc/799182684.html,或者重新登录建立新的会话,以使PostgreSQL重新编译该函数。要想规避此类问题的发生,在重建my_function时可以使用CREATE OR REPLACE FUNCTION命令。 鉴于以上规则,在PL/pgSQL里直接出现的SQL命令必须在每次执行时均引用相同的表和字段,换句话说,不能将函数的参数用作SQL命令的表名或字段名。如果想绕开该限制,可以考虑使用PL/pgSQL 中的EXECUTE语句动态地构造命令,由此换来的代价是每次执行时都要构造一个新的命令计划。 使用PL/pgSQL函数的一个非常重要的优势是可以提高程序的执行效率,由于原有的SQL调用不得不在客户端与服务器之间反复传递数据,这样不仅增加了进程间通讯所产生的开销,而且也会大大增加网络IO的开销。 二、PL/pgSQL的结构: PL/pgSQL是一种块结构语言,函数定义的所有文本都必须在一个块内,其中块中的每个声明和每条语句都是以分号结束,如果某一子块在另外一个块内,那么该子块的END关键字后面必须以分号结束,不过对于函数体的最后一个END关键字,分号可以省略,如: [ <

PostgreSQL+Linux 从入门到精通培训文档 2命令

本章大纲 1. 如何访问命令行 2. 使用命令行下的工具 非编辑模式 进入编辑模式 3. 正则表达式、管道和I/O 重定向 4. 管理用户账户 5. 文件访问控制 6. 管理进程 1,如何访问命令行 1.1 本地命令行的访问 在图形界面中,访问命令行的方法:打开Terminal,Console。或者:Ctrl+Alt+F1 ~ F6 1.2 使用SSH 访问命令行 同上 2,使用命令行下的工具 2.1 使用硬链接

硬链接,指在同一个文件系统中,对inode的引用,只要文件上存在至少1个硬链接,就可以找到对应的inode。 [digoal@digoal01 ~]$ echo "abc" > ./a [digoal@digoal01 ~]$ stat a File: `a' Size: 4 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 656374 Links: 1 -- 硬链接数量 Access: (0664/-rw-rw-r--) Uid: ( 500/ digoal) Gid: ( 500/ digoal) Access: 2017-04-11 13:18:14.292848716 +0800 Modify: 2017-04-11 13:18:14.292848716 +0800 Change: 2017-04-11 13:18:14.292848716 +0800 创建硬链接 [digoal@digoal01 ~]$ ln -L ./a ./b [digoal@digoal01 ~]$ stat a File: `a' Size: 4 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 656374 Links: 2 Access: (0664/-rw-rw-r--) Uid: ( 500/ digoal) Gid: ( 500/ digoal) Access: 2017-04-11 13:18:14.292848716 +0800 Modify: 2017-04-11 13:18:14.292848716 +0800 Change: 2017-04-11 13:18:34.631855044 +0800 [digoal@digoal01 ~]$ stat b File: `b' Size: 4 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 656374 Links: 2 Access: (0664/-rw-rw-r--) Uid: ( 500/ digoal) Gid: ( 500/ digoal) Access: 2017-04-11 13:18:14.292848716 +0800 Modify: 2017-04-11 13:18:14.292848716 +0800 Change: 2017-04-11 13:18:34.631855044 +0800 删除一个硬链接,还能通过其他硬链接找到对应的inode。 [digoal@digoal01 ~]$ rm a rm: remove regular file `a'? y [digoal@digoal01 ~]$ cat b abc 2.2 归档和解压 常用的归档命令tar 归档-c (常用压缩库-j bz2, -z gzip) [digoal@digoal01 ~]$ tar -jcvf test.tar.bz2 b

PostgreSQL学习手册:SQL语言函数

PostgreSQL学习手册:SQL语言函数 一、基本概念: SQL函数可以包含任意数量的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。在简单情况下,返回最后一条查询结果的第一行。如果最后一个查询不返回任何行,那么该函数将返回NULL值。如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF sometype。 SQL函数的函数体应该是用分号分隔的SQL语句列表,其中最后一条语句之后的分号是可选的。除非函数声明为返回void,否则最后一条语句必须是SELECT。事实上,在SQL函数中,不仅可以包含SELECT查询语句,也可以包含INSERT、UPDATE和DELETE等其他标准的SQL 语句,但是和事物相关的语句不能包含其中,如BEGIN、COMMIT、ROLLBACK和SAVEPOINT 等。 CREATE FUNCTION命令的语法要求函数体写成一个字符串文本。通常来说,该文本字符串常量使用美元符($$)围住,如: CREATE FUNCTION clean_emp() RETURNS void AS $$ DELETE FROM emp WHERE salary < 0; $$ LANGUAGE SQL; 最后需要说明的是SQL函数中的参数,PostgreSQL定义$1表示第一个参数,$2为第二个参数并以此类推。如果参数是复合类型,则可以使用点表示法,即$https://www.doczj.com/doc/799182684.html,访问复合类型参数中的name字段。需要注意的是函数参数只能用作数据值,而不能用于标识符,如:INSERT INTO mytable VALUES ($1); --合法 INSERT INTO $1 VALUES (42); --不合法(表名属于标示符之一) 二、基本类型: 最简单的SQL函数可能就是没有参数且返回基本类型的函数了,如: CREATE FUNCTION one() RETURNS integer AS $$ SELECT 1 AS result; $$ LANGUAGE SQL; 下面的例子声明了基本类型作为函数的参数。 CREATE FUNCTION add_em(integer, integer) RETURNS integer AS $$ SELECT $1 + $2; $$ LANGUAGE SQL; # 通过select调用函数。 postgres=# SELECT add_em(1,2) AS answer; answer -------- 3 (1 row) 在下面的例子中,函数体内包含多个SQL语句,它们之间是用分号进行分隔的。CREATE FUNCTION tf1 (integer, numeric) RETURNS numeric AS $$ UPDATE bank SET balance = balance - $2 WHERE accountno = $1; SELECT balance FROM bank WHERE accountno = $1; $$ LANGUAGE SQL;

Sqoop官方中文手册

Sqoop中文手册 1. 概述 本文档主要对SQOOP的使用进行了说明,参考内容主要来自于Cloudera SQOOP的官方文档。为了用中文更清楚明白地描述各参数的使用含义,本文档几乎所有参数使用说明都经过了我的实际验证而得到。 2. codegen 将关系数据库表映射为一个java文件、java class类、以及相关的jar包, 1、将数据库表映射为一个Java文件,在该Java文件中对应有表的各个字段。 2、生成的Jar和class文件在metastore功能使用时会用到。 基础语句: sqoop codegen –connect jdbc:mysql://localhost:3306/hive –username root –password 123456 –table TBLS2

3. create-hive-table 生成与关系数据库表的表结构对应的HIVE表 基础语句: sqoop create-hive-table –connect jdbc:mysql://localhost:3306/hive -username root -password 123456 –table TBLS –hive-table h_tbls2 4. eval

可以快速地使用SQL语句对关系数据库进行操作,这可以使得在使用import这种工具进行数据导入的时候,可以预先了解相关的SQL语句是否正确,并能将结果显示在控制台。 查询示例: sqoop eval –connect jdbc:mysql://localhost:3306/hive -username root -password 123456 -query ―SELECT * FROM tbls LIMIT 10″ 数据插入示例: sqoop eval –connect jdbc:mysql://localhost:3306/hive -username root -password 123456 -e ―INSERT INTO TBLS2 VALUES(100,1375170308,1,0,‘hadoop‘,0,1,‘guest‘,‘MANAGED_TABLE‘,‘abc‘,‘ddd‘)‖ -e、-query这两个参数经过测试,比如后面分别接查询和插入SQL语句,皆可运行无误,如上。 5. export 从hdfs中导数据到关系数据库中 sqoop export –connect jdbc:mysql://localhost:3306/hive –username root –password 123456 –table TBLS2 –export-dir sqoop/test

GP简明使用手册

GP服务启停 su - gpadmin gpstart #正常启动 gpstop #正常关闭 gpstop -M fast #快速关闭 gpstop –r #重启 gpstop –u #重新加载配置文件 登陆与退出Greenplum #正常登陆 psql gpdb psql -d gpdb -h gphostm -p 5432 -U gpadmin #使用utility方式 PGOPTIONS="-c gp_session_role=utility" psql -h -d dbname hostname -p port #退出 在psql命令行执行\q 参数查询 psql -c 'SHOW ALL;' -d gpdb gpconfig --show max_connections 创建数据库 createdb -h localhost -p 5432 dhdw 创建GP文件系统 # 文件系统名 gpfsdw # 子节点,视segment数创建目录 mkdir -p /gpfsdw/seg1 mkdir -p /gpfsdw/seg2 chown -R gpadmin:gpadmin /gpfsdw # 主节点 mkdir -p /gpfsdw/master chown -R gpadmin:gpadmin /gpfsdw gpfilespace -o gpfilespace_config

gpfilespace -c gpfilespace_config 创建GP表空间 psql gpdb create tablespace TBS_DW_DATA filespace gpfsdw; SET default_tablespace = TBS_DW_DATA; 删除GP数据库 gpdeletesystem -d /gpmaster/gpseg-1 -f 查看segment配置 select * from gp_segment_configuration; 文件系统 select * from pg_filespace_entry; 磁盘、数据库空间 SELECT * FROM gp_toolkit.gp_disk_free ORDER BY dfsegment; SELECT * FROM gp_toolkit.gp_size_of_database ORDER BY sodddatname;日志 SELECT * FROM gp_toolkit.__gp_log_master_ext; SELECT * FROM gp_toolkit.__gp_log_segment_ext; 表描述 /d+ 表分析 VACUUM ANALYZE tablename; 表数据分布 SELECT gp_segment_id, count(*) FROM GROUP BY gp_segment_id; 表占用空间 SELECT relname as name, sotdsize/1024/1024 as size_MB, sotdtoastsize as toast, sotdadditionalsize as other FROM gp_toolkit.gp_size_of_table_disk as sotd, pg_class WHERE sotd.sotdoid = pg_class.oid ORDER BY relname;

H2Database中文教程(精编文档).doc

【最新整理,下载后即可编辑】 启动和使用H2管理系统 设置H2管理系统 通过JDBC连接到数据库 创建一个新的数据库 使用服务器模式 使用Hibernate 使用TopLink和Glassfish 使用EclipseLink 在WEB应用中使用数据库 CSV (逗号分隔文件)的支持 升级,备份,和恢复 命令行工具 使用OpenOffice基础框架 使用/ JNLP启动JAVA WEB 使用连接池 全文检索 用户自定义变量 日期和时间 使用Spring 使用和启动H2管理系统 H2管理系统让你能够通过一个浏览器对H2的SQL数据库进行管理操作。H2管理系统不仅可以连接H2数据库,也可以连接其他支持JDBC接口的数据库。

这是一个B/C/S应用,在服务器和浏览器上都要运行H2的管理程序。根据平台不同,H2管理系统支持多种启动应用的方式。在windows上有两种方式启动H2管理系统 方式一:单击[开始],[程序],[H2],和[H2 Console (Command Line)]。当使用SUN JDK1.5时,一个标题为'H2 Console'的窗口将弹出。当使用SUN JDK1.6时,一个数据库图标将被加入WINDOWS到系统托盘。如果既无窗口弹出也没有图标加入到系统托盘,很可能是你的JDK没有正确安装(如果确认自己的JDK 安装正确,可以尝试用另外一种方式启动控制台)。另外一个浏览器窗口将被打开,指向的URL是http://localhost:8082,是H2管理系统的登录页面。 方式二:打开文件浏览器,切换目录到h2/bin,双击运行h2.bat。一个控制台窗口将弹出,如果有问题,将有错误信息在这个窗口里显示。一个浏览器窗口将被打开,指向的URL是http://localhost:8082,是H2管理系统的登录页面。 其他操作系统启动H2管理系统 方式一:双击h2*.jar文件,如果.jar文件能正确的被java打开。

Postgresql配置文件

相比mysql单一的https://www.doczj.com/doc/799182684.html,f,postgresql的访问认证配置主要涉及到两个主要的配置文件:postgresql.conf和pg_hba.conf,本文从安全设置角度讲述这两个配置文件的配置选项。部分文字、样例摘抄自postgresql的中文手册。 postgresql.conf postgresql.conf包含了许多的选项,这些选项控制了postgresql.conf的方方面面,中间影响访问认证的选项是: unix_socket_group 设置Unix 域套接字的组所有人,(套接字的所有权用户总是启动postmaster 的用户)与UNIX_SOCKET_PERMISSIONS 选项一起使用可以给这种套接字类型增加额外的访问控制机制,缺省时是一个空字串,也就是使用当前用户的缺省的组,这个选项只能在服务器启动时设置。 unix_socket_permissions 给Unix 域套接字设置访问权限,Unix 域套接字使用通常的Unix 文件系统权限集。可选的值可以是一个chmod 和umask 系统调用可以接受的数字模式。(要使用客户化的八进制格式,该数字必须以0 (零)开头) 缺省权限是0777,意即任何人都可以联接,合理的选则可能是0770 (只有用户和组,参阅UNIX_SOCKET_GROUP)和0700 (只有用户)。(请注意对于Unix 套接字而言,实际上只有写权限有意义,而且也没有办法设置或者取消读或执行权限) 这个选项只能在服务器启动时设置。 pg_hba.conf是设置访问认证的主要文件,格式为每条记录一行,每行指定一条访问认证。设定一条访问认证包含了7个部分:连接方式(type)、数据库(database)、用户名(user)、ip地址(ip-address)、子网掩码(ip-mask)、认证方法(authentication method)、认证配置(authentication-option),以下是这7个部分的详细说明: 连接方式(type) 连接方式共有三种:local、host、hostssl local 这条记录匹配通过Unix 域套接字进行的联接企图,没有这种类型的记录,就不允许Unix 域套接字的联接。 host

PostgreSQL数据库配置参数详解

十章数据库参数 PostgresSQL提供了许多数据库配置参数,本章将介绍每个参数的作用和如何配置每一个参数。 10.1 如何设置数据库参数 所有的参数的名称都是不区分大小写的。每个参数的取值是布尔型、整型、浮点型和字符串型这四种类型中的一个,分别用boolean、integer、floating point和string表示。布尔型的值可以写成ON、OFF、TRUE、FALSE、YES、NO、1和0,而且不区分大小写。 有些参数用来配置内存大小和时间值。内存大小的单位可以是KB、MB和GB。时间的单位可以是毫秒、秒、分钟、小时和天。用ms表示毫秒,用s表示秒,用min表示分钟,用h表示小时,用d表示天。表示内存大小和时间值的参数参数都有一个默认的单位,如果用户在设置参数的值时没有指定单位,则以参数默认的单位为准。例如,参数shared_buffers 表示数据缓冲区的大小,它的默认单位是数据块的个数,如果把它的值设成8,因为每个数据块的大小是8KB,则数据缓冲区的大小是8*8=64KB,如果将它的值设成128MB,则数据缓冲区的大小是128MB。参数vacuum_cost_delay 的默认单位是毫秒,如果把它的值设成10,则它的值是10毫秒,如果把它的值设成100s,则它的值是100秒。 所有的参数都放在文件postgresql.conf中,下面是一个文件实例: #这是注释 log_connections = yes log_destination = 'syslog' search_path = '"$user", public' 每一行只能指定一个参数,空格和空白行都会被忽略。“ #”表示注释,注释信息不用单独占一行,可以出现在配置文件的任何地方。如果参数的值不是简单的标识符和数字,应该用单引号引起来。如果参数的值中有单引号,应该写两个单引号,或者在单引号前面加一个反斜杠。 一个配置文件也可以包含其它配置文件,使用include指令能够达到这个目的,例如,假设postgresql.conf文件中有下面一行: include ‘my.confg’

Npgsql - 用户手册

Npgsql: 用户的手册 Copyright ?The Npgsql Development Team Last update: $Date: 2009/12/20 02:33:47 $ by $Author: fxjr $ Category: External documentation Intended Audience: Npgsql Users 1. What is Npgsql? Npgsql 是一个.net的资料提供者为postgresql的数据库服务器 它允许一个.net客户端应用程序(控制台,WinForms,ASP的。网络、网络服务…)发送和接收数据与postgresql的服务器。它正在积极开发基于指南规定在.net文档。 2. How to get and compile Npgsql 如何获得和编译Npgsql 2.1 Binary package 二进制包 你可以下载Npgsql编译为MS . 在里面编写.net的项目。 这个包裹里,你会发现下面的目录的布局。 Npgsql/bin/docs - Documentation Npgsql/bin/docs/apidocs - API Documentation Npgsql/bin/ms1.1 - Npgsql compiled for https://www.doczj.com/doc/799182684.html, 1.1 Npgsql/bin/mono - Npgsql compiled for Mono As soon as Npgsql is released on other platforms/versions, they will be added accordingly to this layout. 2.2 Installing binary package 安装二进制包 为了查找到。net运行时,文件Npgsql.dll必须放置在你的应用程序目录——除非你指定另一个目录作为通往私营成分通过一个配置文件(使用探测单元)。请看看。net除有关如何运行(位于)总成,被载入。确切地说,前面可以称为”通往私人组件" 在ASP。网络和网络服务的应用程序中,必须有一个叫做“bin”的应用与https://www.doczj.com/doc/799182684.html,目录. 举例来说,如果应用程序目录被称为“ASPNETApplication”,然后Npgsql.dll和Mono.Security.dll必须放置在“ASPNETApplication \bin”的目录. 如果这些文件是不正确的目录,你可以看到编译器生成错误代码,使用Npgsql类。 或者,你可以把Npgsql装配在解决。自从版本0.4,Npgsql强烈签字——这意味着你可以用“gacutil "安装它。 下列命令: gacutil - Npgsql.dll 请参阅“安装装配在全球缓存汇编”部分的单据MSDN来获得更多信息.利用gac的意义,你应该充分理解,沿着这条路。 注意,放置在……要求Npgsql设计时间支持.net可视化工作室。 (Npgsql编制单声道不需要Mono.Security.dll作为已经融入单声道运行。) 一旦你拷贝或设置组件,你准备去试试这个例子——跳转到section 3. 2.3 Getting Npgsql from CVS 获得Npgsql到CVS 让Npgsql到CVS,使用下列资料储存在你的客户信息 Server: https://www.doczj.com/doc/799182684.html, Repository: /cvsroot/npgsql Module name: Npgsql2 User: anonymous Password:

SQLite学习手册 中文全本

SQLite学习手册 内容收集自网络 整理: zhoushuangsheng@https://www.doczj.com/doc/799182684.html, 新浪微博:@_Nicky 开篇 一、简介: SQLite是目前最流行的开源嵌入式数据库,和很多其他嵌入式存储引擎相比(NoSQL),如BerkeleyDB、MemBASE等,SQLite可以很好的支持关系型数据库所具备的一些基本特征,如标准SQL语法、事务、数据表和索引等。事实上,尽管SQLite拥有诸多关系型数据库的基本特征,然而由于应用场景的不同,它们之间并没有更多的可比性。 下面我们将列举一下SQLite的主要特征: 1. 管理简单,甚至可以认为无需管理。 2. 操作方便,SQLite生成的数据库文件可以在各个平台无缝移植。 3. 可以非常方便的以多种形式嵌入到其他应用程序中,如静态库、动态库等。 4. 易于维护。 综上所述,SQLite的主要优势在于灵巧、快速和可靠性高。SQLite的设计者们为了达到这一目标,在功能上作出了很多关键性的取舍,与此同时,也失去了一些对RDBMS关键性功能的支持,如高并发、细粒度访问控制(如行级锁)、丰富的内置函数、存储过程和复杂的SQL语句等。正是因为这些功能的牺牲才换来了简单,而简单又换来了高效性和高可靠性。 二、SQLite的主要优点: 1. 一致性的文件格式: 在SQLite的官方文档中是这样解释的,我们不要将SQLite与Oracle或PostgreSQL去比较,而是应该将它看做fopen和fwrite。与我们自定义格式的数据文件相比,SQLite不仅提供了很好的移植性,如大端小端、32/64位等平台相关问题,而且还提供了数据访问的高效性,如基于某些信息建立索引,从而提高访问或排序该类数据的性能,SQLite提供的事务功能,也是在操作普通文件时无法有效保证的。 2. 在嵌入式或移动设备上的应用: 由于SQLite在运行时占用的资源较少,而且无需任何管理开销,因此对于PDA、智能手机等移动设备来说,SQLite的优势毋庸置疑。

PostgreSQL数据库学习手册之libpq

PostgreSQL数据库学习手册之libpq - C 库--介绍(转)[@more@] Chapter 1. libpq - C 库 Table of Contents 1.1. 介绍 1.2. 数据库联接函数 1.3. 命令执行函数 1.3.1. 主过程 1.3. 2. 为包含在 SQL 查询中逃逸字串 1.3.3. 逃逸包含在 SQL 查询中的二进制字串 1.3.4. 检索 SELECT 的结果信息 1.3.5. 检索 SELECT 结果数值 1.3.6. 检索非-SELECT 结果信息 1.4. 异步查询处理 1.5. 捷径接口 1.6. 异步通知 1.7. 与 COPY 命令相关的函数 1.8. libpq 跟踪函数 1.9. libpq 控制函数 1.10. 环境变量 1.11. 文件 1.1 2. 线程特性 1.13. 制作 Libpq 程序 1.14. 例子程序 1.1. 介绍 libpq 是 PostgreSQL的 C 应用程序员的接口. libpq 是一套允许客户程序向 PostgreSQL 后端服务进程发送查询并且获得查询返回的库过程. libpq 同时也是其他几个 PostgreSQL 应用接口下面的引擎,包括 libpq++ (C++), libpgtcl(Tcl),Perl,和 ecpg.所以如果你使用这些软件包, libpq某些方面的特性会对你非常重要. 本节末尾有三个小程序显示如何利用 libpq书写程序.在下面目录里面有几个完整的 libpq 应用的例子:src/test/examples src/bin/psql 使用 libpq 的前端程序必须包括头文件 libpq-fe.h 并且必须与 libpq 库链接. PostgreSQL数据库学习手册之libpq-C库---数据库联接函数(转)[@more@] 1.2. 数据库联接函数 下面的过程处理与 PostgreSQL 后端服务器联接的事情.一个应用程序一次可以与多个后端建立联接.(这么做的原因之一是访问多于一个数据库.)每个连接都是用一个从PQconnectdb()或PQsetdbLogin() 获得的PGconn对象表示.注意,这些函数总是返回一个非空的对象指针,除非存储器少得连个PGconn对象都分配不出来.在把查询发送给联接对象之前,可以调用PQstatus 函数来检查一下联接是否成功. * PQconnectdb 与后端数据库服务器建立一个新的联接. PGconn *PQconnectdb(const char *conninfo)

PostgreSQL部署文档

yum安装PostgreSQL 下载PostgreSQL源: rpm -Uvh https://https://www.doczj.com/doc/799182684.html,/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-3.noarch.rpm 登录官网,选择适合自己的版本,本文选择的是PostgreSQL 9.4对应的CentOS7-x86_64版本。 执行安装命令: yum install postgresql94-server postgresql94-contrib 验证是否安装成功: rpm -aq| grep postgres 执行结果如下: postgresql94-libs-9.4.12-1PGDG.rhel7.x86_64 postgresql94-9.4.12-1PGDG.rhel7.x86_64 postgresql94-server-9.4.12-1PGDG.rhel7.x86_64 postgresql94-contrib-9.4.12-1PGDG.rhel7.x86_64 说明正确安装。 初始化数据库 /usr/pgsql-9.4/bin/postgresql94-setup initdb 一定要先初始化数据库,否则启动的时候会报如下错误: postgresql-check-db-dir[2994]: "/var/lib/pgsql/data"is missing or empty. postgresql-check-db-dir[2994]: Use"postgresql-setup initdb"to initialize the database cluster. 启动服务并设置为开机启动 systemctl enable postgresql-9.4 systemctl start postgresql-9.4

PostgreSQL注常见问题入总结

日本是一个多么让人联想翩翩浮想连连的词语,为啥我们要搞日本的大学捏?原因很简单,我们都爱日本妹子 国外的网站也不是坚不可摧,看完本系列文章你会发现,什么高深黑客技术,什么日本名牌大学的网站,也不过如此。都是五分钟从前台到服务器的货。 日本大学入侵系列篇章: 1) 《系列1之日本京都同志社大学 - php注入点写webshell,linux最简单提权》 2) 《系列2之日本共立女子大学 - 解决PostgreSQL连接问题完成脱众女子内裤》 3) 《系列3之日本东京大学 - PostgreSQL注入常见问题总结》 作者:YoCo Smart 来自:Silic Group Hacker Army https://www.doczj.com/doc/799182684.html, 本文基于《PostgreSQL注入语法指南》而写,首先我们先来总结常见问题,常见问题有这样几个 如何判断数据库使用了PostgreSQL数据库,字段数和字段间编码问题,GPC为on时的字符型字段问题,注释符问题。我们一个一个讲 1) 如何判断php搭配数据库为PostgreSQL 我们假设一个php+PostgreSQL并且开启了错误回显的网站有一个注入点,我们在 xx.php?id=n后面加单引号',它的回显将会是这样的: Warning: pg_query() [function.pg-query]: Query failed: ERROR: unterminated quoted string at or near "'" LINE 1: select * from now where no = 111' ^ in /home/sites/web/school/detail.php on line 307 有这样几个关键字可以判断数据库为PostgreSQL: 操作PostgreSQL的函数pg_query() 关键字function.pg-query中的pg 看熟了MySQL的错误回显,有没有发现这个unterminated quoted string at or near不是MySQL的?MySQL的错误回显和这个区别太大了 2) 字段数和字段间编码问题 我们首先将上面的注入点order by 2可以确认now数据表的字段数大于2,当我们order by 2000的时候,显然不可能有那个表段中有2000条数据,当然会出错 Warning:pg_query() [function.pg-query]: Query failed: ERROR: ORDER BY position 2000 is not in select list in /home/sites/web/school/detail.php on line 307 这样大致可以确认可以猜出正确的字段数了。假设字段数为14,那么我们按照MySQL的步骤 1.xx.php?id=0+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14 复制代码 这句没问题吧?但是它99%概率会出问题了:

PostgresXL使用说明文档

Postgres-XL使用说明文档 一、知识点介绍 Postgres-XL是一个基于PostgreSQL数据库的横向扩展开源SQL数据库集群,XL代表eXtensible Lattice,即可扩展的PG“格子”之意,以下简称PGXL。官方称其既适合写操作压力较大的OLTP1应用,又适合读操作为主的大数据应用。它的前身是Postgres-XC(简称PGXC),PGXC是在PG的基础上加入了集群功能,主要适用于OLTP2应用;PGXL是在PGXC的基础上的升级产品,加入了一些适用于OLAP应用的特性,如Massively Parallel Processing (MPP) 特性。通俗的说PGXL的代码是包含PG代码的,使用PGXL安装PG集群并不需要单独安装PG。 总体感觉PGXL这款工具还是相当成熟的,有官方网站,文档也比较完善,也有商业公司2ndQuadrant在支持。 上面这张图就是PGXL集群的架构图,来自官方网站。所有节点中分为三种角色:GTM (全局事务管理器)、Coordinator(协调器)和Datanode(数据节点)。需要注意一点是图中 1OLTP过程(On-Line Transaction Processing),也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。OLTP系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作; 2OLAP,也叫联机分析处理(On-line Analytical Processing)系统,有的时候也叫DSS 决策支持系统,就是我们说的数据仓库。在这样的系统中,语句的执行量不是考核标准,因为一条语句的执行时间可能会非常长,读取的数据也非常多。所以,在这样的系统中,考核的标准往往是磁盘子系统的吞吐量(带宽),如能达到多少MB/s的流量。OLAP系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。

相关主题
文本预览
相关文档 最新文档