爱亚搏 > 判断一个表中是否存在某个字段 及 判断数据库中是否有某个

判断一个表中是否存在某个字段 及 判断数据库中是否有某个

标签: 数据库,string,function,integer,exception,query  |  作者: sky_monkey 相关  |  发布日期 : 2013-09-06  |  热度 : 138°

1。判断一个表中是否存在某个字段
function IsFieldExists(aADO: TADOConnection; aTable,aField: string): Boolean;
var
  aList : TStringList;
begin
  Result := False;
  if not aADO.Connected then
    aADO.Connected := true;
  aList := TStringList.Create;
  try
    aList.Clear;
    aADO.GetFieldNames(aTable,aList);
    if aList.IndexOf(aField) >= 0 then
      Result := True;
  finally
    FreeAndNil(aList);
  end;
end;

2。判断数据库中是否有某个表
function StdTableExists(aConnection : TADOConnection;TableName : string):Boolean;
var
  AllTables : TStringList;
  i : integer;
begin //功能:检查数据库里是否存在某个数据表,true存在,false不存在
  Result := False;
  AllTables := TStringList.Create;
  try
    if not aConnection.Connected then
      aConnection.Connected := true;
    aConnection.GetTableNames(AllTables,False);
    for i := 0 to AllTables.Count - 1 do
    begin
      if SameText(AllTables[I],TableName) then
      begin
        Result := True;
        Break;
      end;
    end;
  finally
    FreeAndNil(AllTables);
  end;
end;

3。另外,判断一个数据集中某字段的数据类型应用这样用:
  if Query1.FieldByName('字段名').DataType in [ftString,ftMemo,ftWideString] then ...
这里,Query1.FieldByName('字段名').DataType属性是一个TFieldType类型,数据类型详细情况可参见在线帮助。老是忘记判断时要取属性DataType,甚至导致一次面试失败,痛心疾首!

4。创建ACCESS数据库:
function Create_MDB(const MDB_File : TFileName;PassWord : string = '') : boolean;
var
  New_MDB : OleVariant;
begin
  Result := false;
  try
    New_MDB := CreateOleObject('ADOX.Catalog');
    New_MDB.Create('Provider=MicroSoft.Jet.OLEDB.4.0;Data Source=' + MDB_File +
                    ';Jet OLEDB:DataBase Password=' + PassWord);
    Result := true;
  except
    on E : Exception do
      ShowMessage(E.Message);
  end;
end;



2005-11-30 22:08:57   
发表评语»»»    

2006-10-28 9:22:00    修改系统的日期显示格式通过修改注册表来改变系统日期显示格式,也相当于在系统控制面板之区域设置里手工改动。
主要是为了统一应用程序中的日期格式。
procedure SetSystemDateTimeFormat;
var
  Reg : TRegistry;
begin
  Reg := TRegistry.Create;
  with Reg do
  begin
    try
      RootKey := HKEY_CURRENT_USER;
      if OpenKey('Control Panel/International',False) then
      begin
        WriteString('sDate','-');
        WriteString('sShortDate','yyyy-MM-dd');
      end;
      RootKey := HKEY_USERS;
      OpenKey('',False);
      if OpenKey('.Default/Control Panel/International',False) then
      begin
        WriteString('sDate','-');
        WriteString('sShortDate','yyyy-MM-dd');
      end;
    finally
      Free;
    end;
  end;
end;


2006-10-28 9:25:22    自定的一个提示框函数利用Application.MessageBox来规定一个标准的提示框函数,一般应用程序也就够用了:
{-------------------------------------------------------------------------------
  过程名:    MessBox
  作者:      魏广州
  日期:      2006.08.28
  参数:      MesBox: string; 提示字串
             IndexA: Integer; 取值范围1..4
                 值为1时,对话框上出现OK和Cancel二个按钮,图标为?号,默认点OK时函数返回真值;
                 值为2时,对话框上出现OK和Cancel二个按钮,图标为?号,默认点Cancel时函数返回真值;
                 值为3时,对话框上出现OK按钮,图标为?号,默认点OK时函数返回真值;
                 值为4时,对话框上出现OK按钮,图标为!号,默认点OK时函数返回真值;
             HintCaption: string = '提示'
  返回值:    Boolean
-------------------------------------------------------------------------------}
function MessBox(MesBox: string; IndexA: Integer; HintCaption: string = '提示'): Boolean;
begin
  Result := False;
  case IndexA of
    1: Result := Application.MessageBox(pchar(MesBox), PAnsiChar(HintCaption), MB_OKCANCEL + MB_ICONQUESTION) = IDOK;
yabo88亚博体育app下载地址     2: Result := Application.MessageBox(pchar(MesBox), PAnsiChar(HintCaption), MB_OKCANCEL + MB_ICONQUESTION) = IDcancel;
    3: Result := Application.MessageBox(pchar(MesBox), PAnsiChar(HintCaption), MB_OK + MB_ICONQUESTION) = IDOK;
    4: Result := Application.MessageBox(pchar(MesBox), PAnsiChar(HintCaption), MB_OK + MB_ICONEXCLAMATION) = IDOK;
  end;
end;