1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124:
| Function CreateDB(DBName: String; DelIfExists: Boolean = False): String; Var DBEngine, Workspace, Database: OleVariant; s, DBError : String; Const dbLangGeneral = ';LANGID=0x0409;';
Function DBAnlegen: String; Begin s := dbLangGeneral + 'CP=' + IntToStr(GetACP()) + ';COUNTRY=0'; DBEngine := CreateOleObject('DAO.DBEngine.36'); Try Try Workspace := DBEngine.Workspaces[0]; Database := Workspace.CreateDatabase(DBName, s, 64); Database.Close; Workspace.Close; DBError := OpenDB(DBName); If DBError <> '' Then Result := DBError; Except On E: Exception Do Result := E.Message; End; Finally Database := NULL; Workspace := NULL; DBEngine := NULL; End; End; Begin Result := ''; If LowerCase(Copy(DBName, Length(DBName) - 3, 4)) <> '.mdb' Then DBName := DBName + '.mdb'; If FileExists(DBName) Then If DelIfExists Then Begin DeleteFile(PChar(DBName)); Result := DBAnlegen; End Else Begin DBError := 'Datenbank existiert bereits, das löschen wurde verweigert'; Result := DBError; End Else Result := DBAnlegen; End;
Function CreateTable(DBName, Tabelle: String): String; Var cCreateData, s, DBError: String;
Begin cCreateData := 'CREATE TABLE ' + Tabelle + '(' + 'ID Counter PRIMARY KEY,' + 'Name Varchar(30),' + 'Row integer,' + 'Col integer,' + 'Data Varchar(30),' + 'DataTyp Byte,' + 'FormatNr Byte,' + 'Format Varchar(20),' + 'Pre Varchar(10),' + 'Post Varchar(10));';
s := OpenDB(DBName); if s='' then begin Con1.LoginPrompt := False; Con1.Open; qryDat.Connection := Con1;
Try qryDat.SQL.Text := cCreateData; qryDat.ExecSQL; qryDat.SQL.Text := 'Create Index IxRow on ' + Tabelle + '(Row)'; qryDat.ExecSQL; qryDat.SQL.Text := 'Create Index IxCol on ' + Tabelle + '(Col)'; qryDat.ExecSQL; qryDat.SQL.Text := 'Select * From ' + Tabelle; qryDat.Open; LastTable := Tabelle; Result := ''; Except DBError := 'Tabelle konnte nicht angelegt werden'; LastTable := ''; Result := DBError; End; end; End; |