肯定相同的执行完adoquery1execsql之后,加入一个showmessage(‘ *** 作成功’);如果显示这个消息的话,就说明adoquery1的语句已经执行成功了(执行失败是不会继续执行showmessage的)。如果还是不放心的话,可以在showmessage后面再加一段代码
adoquery2close;
adoquery2sqlclear;
adoquerysqladd(select from 你的数据库 where 你在adoquery里修改的东东 and 这个东东的主键值(最好是主键) );
adoquery2open;
if adoquery2recordcount = 0 then showmessage(‘不相同’)
else showmessage(‘相同’);
原理就是判断符合你修改后数据的记录数有没有,如果有的话,就说明修改成功了,假设你要修改主键number为23的记录,修改name从张三到李四,那么select from 数据库 where number=23 and name=‘李四’的记录个数应该是1个(不为零)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
n:integer;//此处定义整型变量 n
implementation
{$R dfm}
procedure TForm1Button1Click(Sender: TObject);
begin
edit1text:=inttostr(n+1);//整型n转换成字符型,然后赋值给edit1text
n:=n+1;//n 自加一
end;
end
是不同身份,,在你的应用程序里面的 *** 作权限不同嘛
把每个查询或其他的 *** 作模块化,,做成action
在数据库中另弄一个字段rights,里面放入此用户的 *** 作权限,把每个ACTION 用一个KEYWORD 表示,然后用“;”连接此用户能执行的 *** 作。
然后在用户登陆软件的时候,,判断rights,
有权限的 action 置 true 否则置 false
这个要看你这个函数是干什么的,如果不涉及界面VCL或数据 *** 作等需要同步的事情,那么多个线程调用同一函数跟平常调用一个函数一样,没什么特别的地方,反之,则需要注意每个线程之间的同步问题首先,我认为如果要播放音乐的话就没必要多线程调用啊,难道你想同时播放几个不同的音乐
确实需要的话也简单,从delphi封装好的tthread中继承一个出来就行了
type
TPlayMusic = class(tthread)
private
public
constructor Create;
procedure Execute; override;
end;
constructor TPlayMusicCreate;
begin
FreeOnTerminate :=true;
inherited Create(False);
end;
procedure TPlayMusicExecute;
begin
//这里调用你的播放音乐的函数
end;
调用方法:
在你的主程序里面,任何想调用的地方
var
PM:TPlayMusic;
begin
PM:=TPlayMusicCreate;
end;
一个PM就是一个线程,想开多少个线程就Create几个
以上就是关于我是delphi新手,我写了个小程序,现在我想按保存,就判断新增或修改的记录是否与数据库记录相同,怎么写全部的内容,包括:我是delphi新手,我写了个小程序,现在我想按保存,就判断新增或修改的记录是否与数据库记录相同,怎么写、delphi 入门小程序、用delphi+sql2000做个小程序(C/S结构),要实现数据隔离,不同权限的用户,查询和 *** 作不同的数据,怎么设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)