发送的话你可以试试一个字节一个字节的发送,可以解决16进制的问题,函数如下:
int ComWrtByte (int portNumber, int byte);
另外显示的话,需要将显示控件属性改成16进制的。
可以用SetCtrlAttribute(panelHandle,PANEL_NUMERIC,ATTR_FORMAT,VAL_HEX_FORMAT),来让控件以16进制来显示。
基于数据库表的有效性验证
在用户创建数据库表时就建立有效性验证机制 如在使用DBD创建一个表时 我们可以为创建的数据库表说明一些验证手段 包括字段的最大值 最小值 图形字段的显示格式等等 在设定这些有效性验证机制时 不需要编写任何程序代码 基于数据库表的有效性验证是当数据写到数据库之前 由数据库本身来执行 Delphi也执行一些有效性验证 如在数据写到数据库之前Delphi会验证每一个字段是否被填入相应的值 有关这种途径来验证数据的有效性的详细情况请参考DBD的使用
基于字段的有效性验证
一般有两种方法来进行这种方式的有效性验证
①为记录中需要设置有效性验证的字段编写Onvalidate事件处理过程 这样每当该字段的值被修改时 该字段的OnValidate事件处理过程就会被调用 进而对被修改的字段值进行验证
②对于记录中要求非空的字段(如口令或关键字等) 我们必须首先设置这些字段的Required属性为True 然后为这些字段编写OnValidate事件处理过程 这样在修改现存记录或插入新记录时 在写入数据库之前 如果要求非空的字段中没有填入适当的字段值 那么会出现错误信息提示用户必须输入字段值
基于记录的有效性验证
这种验证方式一般在TTable部件的BeforePost事件处理过程中进行处理 即在记录写回到数据库之前对记录的每个字段值进行有效性验证
例 在程序中对字段值的有效性进行验证
创建一个用TEdit部件浏览ORDERS DB表的应用 如图 所示
修改TDataSource部件的AutoEdit属性为True
双击TTable部件打开字段编辑器Fields Editor 并单击SaleDate字段
在Object Inspector中双击SaleDate字段对象的OnValidate事件 为该字段对象编写事件处理过程如下
TForm Table SaleDateValidate(Sender:TField)
begin
If SaleDate Value>Now then
raise Exception Create( 不能输入一个未来的日期 )
end;
当这个应用程序运行时 用户修改或插入ORDERS DB中的记录时 该应用程序会对销售日期(SaleDate)字段的值进行验证 该字段值不能晚于系统的当前日期 程序中调用Now方法获得系统的当前日期 如果字段值大于系统的当前日期会出现一错误信息提示框 告知用户不能输入一个未来的日期
使用TDBComBox部件和TDBLookupComBox部件来限制用户输入字段值的范围
创建查看orders db表的应用 窗体中显示Terms 字段的是TDBComBox部件 显示EmpNo字段的是TDBLookupComBox部件
TDBComBox和TDBLookupComBox部件的属性值如表 所示
表 窗体中各部件的属性设置
━━━━━━━━━━━━━━━━━━━━━━━━━━━
部 件 属 性 属 性 值
───────────────────────────
DataField Terms
DBComBox DataSource DataSource
Items Prepaid
Net
COD
───────────────────────────
DataField EmpNo
DataSource DataSource
DBLookupComBox LookupSource DataSource
KeyField EmpNo
LookupField EmpNo
───────────────────────────
DataSource DataSet Table
AutoEdit True
───────────────────────────
DataSource DataSet Table
AutoEdit True
───────────────────────────
Table DatabaseName DemosDB
TableName orders db
───────────────────────────
Table DatabaseName DemosDB
TableName orders db
━━━━━━━━━━━━━━━━━━━━━━━━━━━
该应用运行时 当用户修改和插入记录到ORDERS DB表中时 Terms字段的值可以从组合框中的Prepaid Net COD三个值中任选 EmpNo字段的值是从另一个表Employee中获得的雇员号码 用户可以从中选择
返回目录 DELPHI基础教程
编辑推荐
Java程序设计培训视频教程
J EE高级框架实战培训视频教程
Visual C++音频/视频技术开发与实战
Oracle索引技术
ORACLE G数据库开发优化指南
Java程序性能优化 让你的Java程序更快 更稳定
C嵌入式编程设计模式
Android游戏开发实践指南
lishixinzhi/Article/program/Delphi/201311/25166
利用GotoNearest方法执行不精确查找
窗体中的 不精确查找 按钮的事件处理过程代码如下
procedure TForm Button Click(Sender: TObject)
begin
with table do
begin
IndexFieldNames:= Company ;
setkey;
FieldByName( Company ) AsString:=Edit text;
GotoNearest;
label caption:=FieldByName( Company ) AsString;
end;
end;
读者可以利用 FindNearest 方法执行上面的不精确查找 具体使用方法可以参看Findkey方法的使用
在上面的例子中要设置table 的IndexFieldNames属性为Company
GotoNearest方法进行不精确查找
修改数据库中的记录
我们掌握了字段对象的概念和如何查找数据库中的记录之后 下面我便可以很方便地修改数据库中现存的记录了 一般来说 在程序中修改数据库中的记录包括下面这些步骤
在数据库中找到要修改的记录 并将记录指针移至该记录
调用Edit方法将与数据库表相连的TTable部件设置成编辑状态
修改一个或多个字段
调用post方法将修改后的记录写入数据库
以上这几个步骤只是概述性的 具体实现时还有很多细节需要留心 我们通过一个例子来演示上面的全过程 以便让读者进一步地了解和掌握修改记录的方法
例 我们为四个按钮分别编写了事件处理过程 用来遍历数据库中的记录并对每个客户记录的Company字段进行修改 在程序对记录进行更新 *** 作时窗口中的控件都是无效的 在这个例子中我们还编写了一个简单的异常代码块用来确保在更新过程中出现异常时使控件恢复正常 *** 作
修改数据库记录
Edit方法Post方法
为了能让用户通过程序修改数据库表中的记录 TTable部件必须要处在编辑状态下 在大多数情况下 数据库表都是以浏览(只读方式)方式打开的 也就是说它的每一个字段可以被读取介不能被编辑修改 调用Edit 方法能够将 TTable 部件置成编辑状态 当TTable部件处于编辑状态后 我们才可以通过程序修改当前记录指针所指向的记录 但这样修改后的记录不会立即被写入到磁盘上的实际数据库表中 要想保存对记录的修改 必须要调用Post方法 Post方法才真正将我们对记录的修改写入实际的数据库表中
一般来说 用来扫描整个数据库表并修改每个记录的某一个字段的程序如下所示
with Table Do
begin
DisableControls;{在修改记录的过程中 使其它部件无效}
First; {将记录指针指向第一条记录}
while not EOF do
begin
<读取记录的一个字段值到一个变量中>
<做适当的修改>
Edit; {将TTable部件置成编辑状态}
<将修改后的字段值写回到其对应的字段>
post; {将修改后的记录写回数据库}
next; {修改下一条记录}
end;
enablecontrols; {恢复其它部件的功能}
end;
程序都是对TTable部件进行 *** 作 因此使用With语句来防止错误的扩散是很有意义的 在这里要注意Disablecontrols方法和EnableControls方法的使用 DisableControls方法是在程序修改TTable部件中的记录时 切断TTable部件与数据访问部件TDatasource 部件的联系 否则 在对TTable中的每一修改之后 TDataSource 部件都会更新窗体中所有数据浏览部件的显示内容 这样会急剧减慢处理过程而且浪费时间 EnableControls方法是与DisableControle方法执行相反的 *** 作 它是用来恢复TTable部件与TDatasource部件的联系并促使所有的数据浏览部件更新显示
调用First方法是将记录指针移到数据库表中的第一条记录 确保程序从表中的第一条记录开始进行修改 调用Next方法是将记录指针从当前的记录移到下一条记录 这样保证了从表中的第一条记录开始逐条记录进行修改 直到修改完最后一条记录 如果不调用Next方法 程序将会陷入无穷的死循环
实现异常保护的TRY…FINALLY语句
上面的程序存在着潜在的危险 在实际应用过程中 可能因为某些原因使得对数据库表的更新不能进行下去 如当程序试图执行Post方法将修改后的记录写回磁盘时 而又因为某种原因磁盘没有准备好 这时便出现了异常 当出现异常时 应用程序会暂停下来并且会d出一对话框显示有关的错误信息 在用户单击错误信息对话框之后 程序将继续执行到某一个地方去 而这个地方常常不是用户所能预料到的 在我们的程序中 在执行Post方法之前 窗体中所有的部件与TTable部件都已失去联系 因此 这种异常将导致窗体中显示的数据和数据库无关
Object Pascal中的Try…Finally语句为我们解决上述异常问题提供了一个解决方法 在Delphi中仍然采用了这一语句用来处理异常问题 实际上 Try…Finally 语句是把两组语句组合在一起 语句的Try部分包含了可能产生异常的程序代码 Finally部分包含了即使发生了异常也必须执行的一条或多条语句 在本例中 Finally 部分只包含了EnableControls方法调用这一条语句 我们将前面的代码改写并组合进Try…Finally 语句
with Table Do
begin
DisableControls;{在修改记录的过程中 使其它部件无效}
Try;
First; {将记录指针指向第一条记录}
while not EOF do
begin
<读取记录的一个字段值到一个变量中>
<做适当的修改>
Edit; {将TTable部件置成编辑状态}
<将修改后的字段值写回到其对应的字段>
post; {将修改后的记录写回数据库}
next; {修改下一条记录}
end;
enablecontrols;
Finally;{出现异常时 执行下面的程序}
enablecontrols; {恢复其它部件的功能}
end; {结束Try…Finally语句}
end;
在保留字Try和Finally之间的代码跟前面的代码是一样的 它们用于在记录之间移动记录指针并处理对记录的修改 这一段代码可能会出现异常 当异常发生时 我们想保证执行EnableControls 以便窗体中各控件恢复与 TTable 部件的联系 因此我们必须将EnableControls语句放在Finally和结束语句End之间
在这里要特别注意 请读者们不要混淆了Try…Finally语句和Try…Except 语句 如果真正想在发生异常时采取相应的处理 就要使用Try…Except语句 Try… Finally语句只是用来处理当异常出现时 使应用程序执行Finally部分的语句 使程序继续执行下去 Try…Except语句是实现异常处理 Try…Finally语句是实现异常保护
有了上述这些概念 我们便可以提供这个例子的一些程序代码 它涉及了所有这些内容
lishixinzhi/Article/program/Delphi/201311/25167
其他语言
用于开发数据库应用程序的语言中 还可以使用目前数常见的 面向对象程序设计 (OOP)语言 如C++ Objact Pascal等 OOP代表了一种完全不同的程序设计方法 在这种程序设计方法中 活动被定义为在 对象 上发生的 *** 作 而不是作为一系列过程来定义的 在数据库应用程序中使用OOP语言的情况正在不断增加
开发数据库应用程序使用的另一种语言是 宏 语言 宏语言不是一种完全的程序设计语言 它实际上是一个用户手工输入的表 这个表被输入到应用程序中 以便自动执行一定的任务 对于某个特定应用的高级语言 宏语言通常可以在低档DBMS软件中或数据库服务器的前端中找到
最后 还有一种 Query By Example (QBE 范例查询)语言 严格地讲QBE不是一种语言 它是面向用户提供了一个或多个空表的界面 这些空表对应于数据库中的表 用户可以通过键盘选择需要查询的列 并在适当的列中填入条件从而定义查询的检索条件 然后DBMS就把QBE转换成相应的动作 以完成用户要求的查询任务
Delphi的数据库特性及功能简介
直到目前为止 计算机软件的开发分为两个不同的体系 其中一个体系是使用传统的程序设计语言(如Pascal Basic和C等)开发数值控制 数值运算等软件 围绕它们的重点是算术 数据结构以及近年产生的面向对象技术 另一个体系则是通用的数据库管理软件领域(数据库应用程序的开发) 这两个体系的发展都极为迅猛 但是二者并没出现混合渗透迹象 如果使用数据库语言进行传统的算术编程 虽然也能完成相应的功能 但是其编程过程可能极为复杂 如果使用传统的编程语言进行数据库编程 通过调用专用的数据库应用程序接口函数和过程 利用这些函数和过程提供的功能 可能也能做得比较完善 但这做起来大多是极其困难的 而Delphi结合了两个体系的优点 它结合了传统的编程语言Object Pascal和数据库语言的强大功能 它即可以用于传统的算术编程又可以用于数据库编程 特别是Delphi具有强大的数据库功能 利用Delphi的数据库工具 我们根本不需要编写任何Object Pascal代码便可以创建一个简单的数据库应用
Delphi是Borland公司于 年底发布的用于开发数据库应用程序的工具 它是面向对象的 它是目前开发客户/服务器数据库应用程序的强有力的工具 Delphi在Window 以上版本的系统环境下运行 目前具有两个版本 Delphi的标准版本和客户/服务器版本 标准版本包含一个Borland Database Engine的局部拷贝 它允许用户创建能访问dBASE Paradox和Local InterBase 服务器的数据库应用 它还支持具有 ODBC 接口的数据库 Delphi的客户/服务器版本包括Borland SQL Link 它能直接访问 ORACLE SyBase 和Microsoft SQL Server Informix以及InterBase数据库服务器
Delphi可以访问多种数据库管理系统的数据库 凭借窗体(Forms)和报表(Reports) BDE(Borland Database Engine)可以访问诸如Paradox dBASE 本地InterBase 服务器的数据库 也可以访问远程数据库服务器上的数据库(如ORACLE SyBase Informix等客户/服务器数据库中的数据库) 或任何经ODBC(Open Database Connecticity) 可访问的数据库管理系统中的数据库
Delphi的数据库特性
跟其他的应用程序一样 Delphi提供了许多部件以方便地创建数据库应用程序 数据库对象的数据成员既可在设计阶段设置 也可在运行阶段通过程序代码进行设置 Delphi的部件板上提供了两页数据库应用程序开发中所要使用的部件
数据访问页(Data Access Page)上的部件用于直接访问数据库中的数据库表
数据控制页(Data Control Page)上的部件用来与用户交互 显示 修改数据库中的数据
数据库应用程序首先是利用Delphi提供的数据库部件与BDE建立联系 然后再通过BDE与数据库联系 下图阐述了Delphi的数据库工具和部件 Delphi数据库应用程序与BDE 数据源之间的关系
下表概括了Delphi的数据库特性
表 Delphi的数据库特性
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
工具和部件 主 要 用 途
──────────────────────────────────────
Data Access Components 访问数据库 数据库表 存贮过程等
──────────────────────────────────────
Data Control Components 与用户交互 提供显示 修改数据库中数据的界面
──────────────────────────────────────
Database Desktop(DBD) 建立 索引 查询数据库表以及访问 编辑来自各数据中的数据
──────────────────────────────────────
ReportSmith 建立 浏览和打印数据库表中的数据
──────────────────────────────────────
Borland Database Engine 数据库应用通过BDE访问dBASE Paradox数据库中的数据(BDE) 和本地InterBase数据库服务器中的数据
──────────────────────────────────────
BDE Configuration 建立和管理BDE与数据库建立连接时所使用的数据库的
Utility 别名
──────────────────────────────────────
Local InterBase Server 它是一个单用户 多例程的本地SQL数据库服务器 可在单机环境下用来开发或测试客户/服务器数据库应用程序 然后再将之扩展成一个访问远程数据库服务器如ORACLE SyBase Informix等
──────────────────────────────────────
InterBase SQL Link 连接Delphi数据库应用程序一本地InterBase服务器的驱动程序
Delphi上述这些特性使得我们创建数据库应用程序通过BDE能够很灵活地与 dBASE Paradox Local InterBase数据库服务器进行连接并可以方便地访问其中的数据 我们在创建一个简单的数据库应用时通过使用Delphi提供的上述工具和部件甚至可以不需编写任何程序
BDE被自动地包含在Delphi中 因此 我们在创建数据库应用程序时 不必关心BDE的有关内容 Delphi的安装程序自动为Paradox dBASE和本地InterBaseServer 安装相应的驱动程序 并建立了有关的配置 DBE Configuration Utility 可以建立应用程序与数据库的连接信息 还可以为数据库设置别名
下表列出了Delphi开发Client/Server应用程序的有关特性 这些特性扩展了 Delphi访问远程数据库的功能 如SQL数据库服务器(ORACLE SyBase Informix Microsoft SQL Server InterBase)
表 Delphi Client/server数据库特性
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
工 具 主 要 用 途
─────────────────────────────────
SQL Drivers SQL Drivers中的SQL link和ReportSmith为Delphi数据库应用程序提供了访问远程SQL服务器的驱动程序 如访问ORACLE SyBase Microsoft SQL server Informix Intermix
─────────────────────────────────
lishixinzhi/Article/program/Delphi/201311/25183
Delphi中嵌入的数据库应用开发工具如Database Form Expert具有很强大的功能 我们不需要编写任何程序代码便可以快速地创建一个简单的数据库应用程序 甚至还能创建基于多个数据库表的主要──明细型数据库应用程序
本章主要介绍用Delphi开发简单的数据库应用程序的一般方法和步骤 首先让读者对Delphi强劲的数据库应用开发工具有一个直观的印象 然后在此基础上进行复杂的数据库应用程序的设计 本章主要包括以下内容
● 创建数据库应用窗体
包括用Database Form Expert 或手工方式创建简单的无需编写程序代码的应用程序或者利用多个部件并编写功能复杂的程序代码创建主要──明细型数据库应用程序
● 在应用程序中控制字段有关的属性
描述怎样读写数据库表中字段的值和控制字段的显示格式等
本章所介绍的例子中用到的窗体 数据库表以及相关的文件都是在安装Delphi时缺省安装在C:\DELPHI\DEMOS\DB\MASTAPP目录中 并且用别名DBDEMOS表示这一子目录 在本章例子中 除特殊声明外 所有的TTable和 TQuery 部件的 DatabaseName 属性都设置为DBDEMOS
简单的基于单表的据库应用
用Decphi创建显示一个数据库表中的内容的应用非常简单和方便 只需要三个部件 只要将这三个部件通过相关的属性相互联系起来 不需要编写任何程序代码便可以实现 例如 用户想查看数据库表Customer DB中的内容时 可以按下面步骤来实现
选择相关的部件
选择菜单Project/New开始一个新工程 并修改Form 的Caption属性为CustomerFrom 并把Name属性设置为CustomerForm 然后从部件选择板上的Data Access 页上选取一个Datasounce部件和一个Table部件放到窗体的左上角 它们是非可见的部件 在窗体中我们看到的只是部件的图标 从Data Control页上选取DBGrid部件放到窗体中前两个部件的下面 完成这些工作之后 窗体如图 所示
图在CustomerFrom 窗体中放置三个部件
设置部件的属性
为了使TDBGrid部件能够显示数据库表Customer DB中的客户信息 我们必须修改窗体三个部件相关的属性 这些属性的设置如表 所示
表 CustomerFrom 窗体中三个部件的属性设置
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
属 性 属 性 值
──────────────────────────────
DataSource AutoEdit False
DataSource DataSet Table
Table DatabaseName DBDEMOS
Table TableName CUSTOMER DB
Table Active True
DBGrid DataSource DataSource
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
这里要注意的是 DBDEMOS是Delphi缺省安装时C:\Delphi\DEMO\DB\MASTAPP目录的别名 而且数据库表Customer DB存在该目录下 用户在使用这一例子时 请注意这两项设置都是正确的 另外 Datasource Dataset Table TableName和DBGrid Datasource属性都有下拉式列表框允许用户从可能的值列表中选择它们的值 这样能方便我们进行属性的设置 而且不容易出错
Datasouuce AutoEdit属性设置为False是为了防止用户修改数据库表中的数据 在下面的讨论中我们将详细地进行说明
Table Active设置为True时 Delphi会打开Table TableName所指定的数据库表 如果这个数据库表不存在(或表中什么也没有 即空表) Delphi 会d出出错信息并且Table Active变成False 当Table Active被设置成True之后 Table 部件的一些属性就不能再修改了 如Table DatabaseName和Table Tablename属性 若要修改它们 必须首先要将Table Active属性设置为False 然后再进行修改 否则 Delphi会d出错误信息 Cannot perform this operation on an open database 当看到这个错误信息时 只需把Table Active置成False 完成相关的修改后 再把 Table Active 属性设置为True
当我们把DBGrid DataSource的值设置成DataSource 时 Delphi会把Customer DB中的数据填充到DBGrid 部件中 并且可以用DBGrid 中的滚动条来浏览数据库表中的所有记录
运行程序
保存文件 命名代码单元为Cust pas 命名工程名为CustPRJ DPR 然后按F 编译并运行程序 程序执行之后 我们可以使用滚动条或键盘移动键在字段和记录间移动 但不能修改表中的数据 因为Datasouc AutoEdit 属性已被设置为False
Cust程序中的三个部件都有各自的特殊用途 三个部件的相关属性在内部相互联系生成最终的应用程序 TTable部件连接磁盘上的实际数据库表和应用程序中其他部件的通道 TTable部件具有打开和关闭 读取 更新以及其他处理磁盘数据库文件的方法
TDatasource部件是连接TTable部件和数据浏览部件如TDBGrid部件的桥梁 TDBGrid部件用于显示数据库表中的数据信息 它为应用程序提供一个直观的界面 图 阐述了这三个部件之间的关系
Cust程序中三个部件之间的内部关系
TDBGrid 部件的奇妙之处在于它知道如何去获取数据库表中的下一条或前一条记录 我们使用滚动条或箭头键便可以完成这项任务 TDBGrid部件不知道如何增加 删除和修改记录 如果想让 Cust 程序能够修改数据库表中的记录 只要把 Datasource 部件的AutoEdit属性设置成True 并重新编译和运行程序就可以达到目的 使用箭头键 把DBGrid的高亮度条定位到某一个字段上 然后键入新值 该字段中的值将被键入的新值所取代 并且当移动到另一条记录时 健入的信息会自动写入数据库表中 如果想放弃所做的改动 只需在离开该字段前按一下Escape键
如果想在表中增加新记录 可以把高亮度条移到网格底端的空白记录上并输入新记录的有关字段值 也可以在用户指定的某一条记录的后面插入一条新记录 只要把高亮度条定位到指定的记录上 按Ins键 使可以在该记录的后面插入新记录
删除某一条记录时 把高亮度条定位在想删除的记录的任何字段上 按Ctrl+ del键 这时会出现保护信息 我们可以确认是否真的想删除该项记录
TDBGrid为用户提供了较完备的功能 用于控制是否编辑 增加或删除记录 若想禁止对数据库表作任何修改 设置TDBGrid部件的Readonly属性为 True 并设置 Option dgEDiting为False(这将为我们提供一个只读的数据库表浏览器而不是数据库编辑器 但它隐含着增加 编辑和删除记录的能力) TDBGrid部件的这些属性和Option属性其它选项的各种不同组合可以让我们很方便地对数据库表进行有效的浏览 编辑等 *** 作
如果我们经常使用像电子表格那样的界面来显示和编辑数据记录 TDBGrid 部件便是一个很方便的工具 但那并不是最友好的用户界面 如果想拥有更优美更直观的界面 我们还可以使用单独的数据浏览部件来显示数据库表中各个字段的值 并利用TDBNavigator部件控制对数据库表的存取
lishixinzhi/Article/program/Delphi/201311/25173
表头要自己用属性节点---列首字符串(一维数组)来动态设置
你在labsql去读数据库的时候,字段名应该就是aa bb cc,那么你把这个字段名组成数组赋给表格的列首字符串属性就可以了
1、下载MySQL5x发行版,解压并安装映像中的两个安装包文件。
amysql-5x-osx106_x86_64pkg-mysql5x标准版安装
bpkg-mysql启动项目,可以上你的电脑在启动系统时自动运行mysql服务。它安装在/Library//MySQL/,如果你不想系统启动时运行mysql服务,请不要安装。如果你在安装后又不想使用,请删除/Library//MySQL/这个目录。
启动mysql:
2、如果你已经安装了pkg,重新启动电脑即可。
3、如果你有安装pkg或者不想启动电脑,运行:应用程序-实用程序-终端程序,在终端中输入命令:
sudo/Library//MySQL/MySQLstart
然后输入你的系统管理员密码,如果没有设定密码就直接回车。
关闭mysql服务:
终端中输入命令:sudo/Library//MySQL/MySQLstop
然后输入你的系统管理员密码,如果没有设定密码就直接回车。
mysqlroot账户密码:
mysqlroot密码初始值是空。这样虽然没有问题。但很不安全。建议你更改root用户密码。注意:mysqlroot用户和系统中的root用户是不一样的。是完全两个不同的用户。
更改mysqlroot密码请在终端中输入命令:
/usr/local/mysql/bin/mysqladmin-urootpassword新密码
同时你也可以随时使用这条命令更改你的密码。
4、下载x版mysql数据库管理工具
这是一个运行在macosx系统中的mysql数据库管理软件,支持本地及远程数据库管理。并且还是免费的。这个程序的优点是完全CGI界面。并且密码是保存在本机上的。相对比较安全。
在MYSQL 中 终于引入了存储过程这一新特性 这将大大增强MYSQL 的数据库处理能力 在本文中 将指导读者快速掌握MYSQL 的存储过程的基本知识 带领用户入门
存储过程介绍
存储过程是一组为了完成特定功能的SQL语句集 经编译后存储在数据库中 用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它 存储过程可由应用程序通过一个调用来执行 而且允许用户声明变量 同时 存储过程可以接收和输出参数 返回执行存储过程的状态值 也可以嵌套调用
存储过程的优点
作为存储过程 有以下这些优点
( )减少网络通信量 调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可能不会有很大的差别 可是如果存储过程包含上百行SQL语句 那么其性能绝对比一条一条的调用SQL语句要高得多
( )执行速度更快 存储过程创建的时候 数据库已经对其进行了一次解析和优化 其次 存储过程一旦执行 在内存中就会保留一份这个存储过程 这样下次再执行同样的存储过程时 可以从内存中直接中读取
( )更强的安全性 存储过程是通过向用户授予权限(而不是基于表) 它们可以提供对特定数据的访问 提高代码安全 比如防止 SQL注入
( ) 业务逻辑可以封装存储过程中 这样不仅容易维护 而且执行效率也高
当然存储过程也有一些缺点 比如
可移植性方面 当从一种数据库迁移到另外一种数据库时 不少的存储过程的编写要进行部分修改
存储过程需要花费一定的学习时间去学习 比如学习其语法等
在MYSQL中 推荐使用MYSQL Query Browswer()这个工具去进行存储过程的开发和管理 下面分步骤来学习MYSQL中的存储过程
定义存储过程的结束符
在存储过程中 通常要输入很多SQL语句 而SQL语句中每个语句以分号来结束 因此要告诉存储过程 什么位置是意味着整个存储过程结束 所以我们在编写存储过程前 先定义分隔符 我们这里定义 // 为分隔符 我们使用DELIMITER //这样的语法 就可以定义结束符了 当然你可以自己定义其他喜欢的符号
如何创建存储过程
下面先看下一个简单的例子 代码如下
DELIMITER //CREATEPROCEDURE `p ` ()LANGUAGE SQLDETERMINISTICSQL SECURITY DEFINERMENT A procedure BEGINSELECT Hello World ! ;END//
下面讲解下存储过程的组成部分
)首先在定义好终结符后 使用CREATE PROCEDURE+存储过程名的方法创建存储过程 LANGUAGE选项指定了使用的语言 这里默认是使用SQL
)DETERMINISTIC关键词的作用是 当确定每次的存储过程的输入和输出都是相同的内容时 可以使用该关键词 否则默认为NOT DETERMINISTIC
) SQL SECURITY关键词 是表示调用时检查用户的权限 当值为INVOKER时 表示是用户调用该存储过程时检查 默认为DEFINER 即创建存储过程时检查
) MENT部分是存储过程的注释说明部分
lishixinzhi/Article/program/MySQL/201404/30557
以上就是关于LabWindows NI怎么向串口发送16进制的数据给单片机呢据我所掌握的知识是,LabWindow全部的内容,包括:LabWindows NI怎么向串口发送16进制的数据给单片机呢据我所掌握的知识是,LabWindow、DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(三)[4]、DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(三)[1]等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)