Create MS-Access database
Posted: Wed Aug 03, 2011 2:07 pm
Hi,
How can I make *.mdb or *.accdb files by coding on run-time in PB?
Thanks.
How can I make *.mdb or *.accdb files by coding on run-time in PB?
Thanks.
http://www.purebasic.com
https://www.purebasic.fr/english/
Code: Select all
#ODBC_ADD_DSN = 1
Procedure CreateEmptyMDB(databasename.s, user.s = "", pass.s = "")
Protected strDriver.s, strAttributes.s, L.l, result.l
Protected *buffer.Character, len.l
If FileSize(databasename) > 0
DeleteFile(databasename)
EndIf
strDriver = "Microsoft Access Driver (*.mdb)"
strAttributes + "CREATE_DB=" + #DQUOTE$ + databasename + #DQUOTE$ + " General"
strAttributes + ";UID=" + user
strAttributes + ";PWD=" + pass + ";"
*buffer = @strAttributes
len = Len(strAttributes) - 1
For L = 0 To len
If *buffer\c = ';'
*buffer\c = 0
EndIf
*buffer + SizeOf(Character)
Next L
result = SQLConfigDataSource_(0, #ODBC_ADD_DSN, strDriver, strAttributes) ; Call the function you need from the ODBC library with the right details
ProcedureReturn result
EndProcedure
Code: Select all
#ODBC_ADD_DSN = 1
Procedure RepairMDB(databasename.s, user.s = "", pass.s = "")
Protected name.s, strDriver.s, strAttributes.s, L.l, result.l
Protected *buffer.Character, len.l
name = GetFilePart(databasename)
name = Left(name, Len(name) - (Len(GetExtensionPart(name)) + 1))
strDriver = "Microsoft Access Driver (*.mdb)"
strAttributes + "REPAIR_DB=" + #DQUOTE$ + databasename + #DQUOTE$
strAttributes + ";UID=" + user
strAttributes + ";PWD=" + pass + ";"
*buffer = @strAttributes
len = Len(strAttributes) - 1
For L = 0 To len
If *buffer\c = ';'
*buffer\c = 0
EndIf
*buffer + SizeOf(Character)
Next L
result = SQLConfigDataSource_(0, #ODBC_ADD_DSN, strDriver, strAttributes) ; Call the function you need from the ODBC library with the right details
ProcedureReturn result
EndProcedure
; ***************************************************************************************
Procedure CompactMDB(databasename.s, user.s = "", pass.s = "")
Protected strDriver.s, strAttributes.s, L.l, result.l
Protected *buffer.Character, len.l
strDriver = "Microsoft Access Driver (*.mdb)"
strAttributes + "COMPACT_DB=" + #DQUOTE$ + databasename + #DQUOTE$ + " " + #DQUOTE$ + databasename + #DQUOTE$+ " General"
strAttributes + ";UID=" + user
strAttributes + ";PWD=" + pass + ";"
*buffer = @strAttributes
len = Len(strAttributes) - 1
For L = 0 To len
If *buffer\c = ';'
*buffer\c = 0
EndIf
*buffer + SizeOf(Character)
Next L
result = SQLConfigDataSource_(0, #ODBC_ADD_DSN, strDriver, strAttributes) ; Call the function you need from the ODBC library with the right details
ProcedureReturn result
EndProcedure