unit DBHelpUtil;
interface
uses Classes, SysUtils , DB;
const KIND_INTEGER = 1;
const KIND_STRING = 2;
function InsertSQL(dbName , tableName : string ; valuesList : ContentValueList) : boolean;
function DeleteSQL(dbName , tableName ,whereCause: string ; whereList : ContentValueList) : boolean;
function UpdateSQL(dbName , tableName : string ; valuesList :ContentValueList ; whereCause : string ;whereList : ContentValueList) : boolean;
type
ContentValue = class
public
key : string;
kind : integer;
value : string;
constructor Create;
destructor Destroy; override;
end;
type
ContentValueList = class
public
list : TList;
function getCount() : integer;
function getItem(p : integer) : ContentValue;
procedure addString(keyxx,valuexx : string);
procedure addWhereString(valuexx : string);
procedure addWhereInteger(valuexx : integer);
procedure addInteger(keyxx : string ; valuexx : integer);
constructor Create;
destructor Destroy; override;
end;
implementation uses StringUtil;
function GetSubStrCounts(AStr,ASubStr: string): Integer;
var
i: Integer;
begin
Result := (length(AStr)-length(StringReplace(AStr,ASubstr,'',[rfReplaceAll, rfIgnoreCase]))) div length(asubstr);
end;
procedure test(Npc: TNormNpc; Player: TPlayObject);
var
test1,test2,test3,test4: ContentValueList;
begin
test1 := ContentValueList.create;
//addString还是addInteger是根据数据库字段来的。
test1.addString('goodName','123');
test1.addInteger('status',0);
DBHelpUtil.InsertSQL('cqdb','goodsneed',test1);
//产生的sql是:insert into goodsneed(goodName,status) values ('123',0);
DBHelpUtil.DeleteSQL('cqdb','goodsneed','',nil);
//产生的sql是:delete from goodsneed;
test2 := ContentValueList.create;