您的位置:首页 > 数据库

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

2009-08-17 18:59 841 查看
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;

    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;

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息