mysql-cocoa-commits Mailing List for MySQL Objective C API for Cocoa (Page 3)
Brought to you by:
sergecohen
You can subscribe to this list here.
2002 |
Jan
(2) |
Feb
(6) |
Mar
(11) |
Apr
(2) |
May
(40) |
Jun
(17) |
Jul
(2) |
Aug
(2) |
Sep
|
Oct
|
Nov
(4) |
Dec
(11) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(4) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(44) |
Sep
|
Oct
(14) |
Nov
|
Dec
|
2004 |
Jan
|
Feb
|
Mar
(7) |
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
(12) |
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Serge C. <ser...@us...> - 2003-08-22 04:14:48
|
Update of /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj In directory sc8-pr-cvs1:/tmp/cvs-serv7098/SMySQL.pbproj Modified Files: Tag: version-1 cohen.pbxuser project.pbxproj Log Message: Corrected the issue (raised by Lorenz Textor) on BigInt MySQL type (corresponding to long long, not long int), where a BIGINT would be passed back as a 32 bits integer instead of 64 bits. Now SMySQLResult handles properly BIGINT. Added a BIGINT column in the test1 table (CLI_Test), to check if it is working. NB : Unsigned int (both INT and BIGINT) might still causes problem if they are in the higher half of their range (because they will be interpreted as signed integers). Version get from 1.0.0 to 1.0.1 2003-08-21; Serge Cohen. Index: cohen.pbxuser =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj/cohen.pbxuser,v retrieving revision 1.15 retrieving revision 1.15.2.1 diff -C2 -d -r1.15 -r1.15.2.1 *** cohen.pbxuser 25 Dec 2002 20:51:55 -0000 1.15 --- cohen.pbxuser 21 Aug 2003 06:33:54 -0000 1.15.2.1 *************** *** 10,140 **** ); perUserDictionary = { ! PBXPerProjectTemplateStateSaveDate = 62538361; ! "PBXTemplateGeometry-F5CA7ECB015C094F0DCA290F" = { ! ContentSize = "{668, 621}"; ! LeftSlideOut = { ! Collapsed = NO; ! Frame = "{{0, 0}, {668, 621}}"; ! Split0 = { ! Collapsed = NO; ! Frame = "{{0, 0}, {668, 621}}"; ! Split0 = { ! Frame = "{{0, 0}, {668, 621}}"; ! }; ! SplitCount = 1; ! Tab0 = { ! Frame = "{{0, 0}, {484, 208}}"; ! }; ! Tab1 = { ! Debugger = { ! Collapsed = NO; ! Frame = "{{0, 0}, {664, 208}}"; ! Split0 = { ! Frame = "{{0, 24}, {664, 184}}"; ! Split0 = { ! Frame = "{{0, 0}, {325, 184}}"; ! }; ! Split1 = { ! DebugVariablesTableConfiguration = ( ! Name, ! 123, ! Value, ! 85, ! Summary, ! 96.123, ! ); ! Frame = "{{334, 0}, {330, 184}}"; ! }; ! SplitCount = 2; ! }; ! SplitCount = 1; ! Tab0 = { ! Frame = "{{0, 0}, {100, 50}}"; ! }; ! Tab1 = { ! Frame = "{{0, 0}, {100, 50}}"; ! }; ! TabCount = 2; ! TabsVisible = YES; ! }; ! Frame = "{{0, 0}, {664, 208}}"; ! LauncherConfigVersion = 7; ! }; ! Tab2 = { ! Frame = "{{0, 0}, {664, 50}}"; ! LauncherConfigVersion = 3; ! Runner = { ! Frame = "{{0, 0}, {664, 50}}"; ! }; ! }; ! Tab3 = { ! BuildMessageFrame = "{{0, 0}, {614, 262}}"; ! BuildTranscriptFrame = "{{0, 271}, {614, 2}}"; ! BuildTranscriptFrameExpanded = YES; ! Frame = "{{0, 0}, {612, 295}}"; ! }; ! Tab4 = { ! Frame = "{{0, 0}, {612, 295}}"; ! }; ! TabCount = 5; ! TabsVisible = NO; ! }; ! SplitCount = 1; ! Tab0 = { ! Frame = "{{0, 0}, {313, 531}}"; ! GroupTreeTableConfiguration = ( ! TargetStatusColumn, ! 18, ! MainColumn, ! 280, ! ); ! }; ! Tab1 = { ! ClassesFrame = "{{0, 0}, {280, 398}}"; ! ClassesTreeTableConfiguration = ( ! PBXBookColumnIdentifier, ! 20, ! PBXClassColumnIdentifier, ! 237, ! ); ! Frame = "{{0, 0}, {278, 659}}"; ! MembersFrame = "{{0, 407}, {280, 252}}"; ! MembersTreeTableConfiguration = ( ! PBXBookColumnIdentifier, ! 20, ! PBXMethodColumnIdentifier, ! 236, ! ); ! }; ! Tab2 = { ! Frame = "{{0, 0}, {200, 100}}"; ! }; ! Tab3 = { ! Frame = "{{0, 0}, {200, 557}}"; ! TargetTableConfiguration = ( ! ActiveObject, ! 16, ! ObjectNames, ! 202.296, ! ); ! }; ! Tab4 = { ! BreakpointsTreeTableConfiguration = ( ! breakpointColumn, ! 197, ! enabledColumn, ! 31, ! ); ! Frame = "{{0, 0}, {250, 100}}"; ! }; ! TabCount = 5; ! TabsVisible = NO; ! }; ! NavBarShownByDefault = YES; ! StatusViewVisible = NO; ! Template = F5CA7ECB015C094F0DCA290F; ! ToolbarVisible = NO; ! WindowLocation = "{48, 189}"; ! }; PBXWorkspaceContents = ( { --- 10,14 ---- ); perUserDictionary = { ! PBXPerProjectTemplateStateSaveDate = 83139670; PBXWorkspaceContents = ( { *************** *** 143,172 **** Split0 = { NavContent0 = { ! bookmark = 0D248ADE03BA42FC00602EB2; history = ( ! F578B417031587380130DCE9, ! F50FE3620397818E01AB07D3, ! F50FE3630397818E01AB07D3, ! 0D0685EC03BA38840047A251, ! 0D0685ED03BA38840047A251, ! 0D0685EE03BA38840047A251, ! 0D0685F703BA38840047A251, ); prevStack = ( ! F578B419031587380130DCE9, ! F50FE3650397818E01AB07D3, ! F50FE3660397818E01AB07D3, ! 0D0685F003BA38840047A251, ! 0D0685F103BA38840047A251, ! 0D0685F203BA38840047A251, ! 0D0685F303BA38840047A251, ! 0D0685F403BA38840047A251, ! 0D0685F503BA38840047A251, ! 0D0685F603BA38840047A251, ); }; NavCount = 1; NavGeometry0 = { ! Frame = "{{0, 0}, {858, 397}}"; NavBarVisible = YES; }; --- 17,36 ---- Split0 = { NavContent0 = { ! bookmark = 0DF740CE04F49CA400A8C863; history = ( ! 0DF740C704F49CA400A8C863, ! 0DF740C804F49CA400A8C863, ! 0DF740C904F49CA400A8C863, ! 0DF740CA04F49CA400A8C863, ); prevStack = ( ! 0DF740CB04F49CA400A8C863, ! 0DF740CC04F49CA400A8C863, ! 0DF740CD04F49CA400A8C863, ); }; NavCount = 1; NavGeometry0 = { ! Frame = "{{0, 0}, {872, 624}}"; NavBarVisible = YES; }; *************** *** 201,217 **** PBXWorkspaceGeometries = ( { ! ContentSize = "{1142, 709}"; LeftSlideOut = { ! ActiveTab = 0; ! ActiveTabName = PBXGroupTreeModule; Collapsed = NO; ! Frame = "{{0, 23}, {1142, 686}}"; Split0 = { - ActiveTab = 2; - ActiveTabName = PBXBuildResultsModule; Collapsed = NO; ! Frame = "{{284, 0}, {858, 686}}"; Split0 = { ! Frame = "{{0, 289}, {858, 397}}"; }; SplitCount = 1; --- 65,79 ---- PBXWorkspaceGeometries = ( { ! ContentSize = "{1087, 671}"; LeftSlideOut = { ! ActiveTab = 3; ! ActiveTabName = PBXTargetTreeModule; Collapsed = NO; ! Frame = "{{0, 23}, {1087, 648}}"; Split0 = { Collapsed = NO; ! Frame = "{{215, 0}, {872, 648}}"; Split0 = { ! Frame = "{{0, 24}, {872, 624}}"; }; SplitCount = 1; *************** *** 262,272 **** }; Tab3 = { ! BuildMessageFrame = "{{0, 0}, {860, 232}}"; ! BuildTranscriptFrame = "{{0, 241}, {860, 2}}"; BuildTranscriptFrameExpanded = YES; ! Frame = "{{0, 0}, {858, 265}}"; }; Tab4 = { ! Frame = "{{0, 0}, {612, 295}}"; }; TabCount = 5; --- 124,134 ---- }; Tab3 = { ! BuildMessageFrame = "{{0, 0}, {574, 232}}"; ! BuildTranscriptFrame = "{{0, 241}, {574, 2}}"; BuildTranscriptFrameExpanded = YES; ! Frame = "{{0, 0}, {572, 265}}"; }; Tab4 = { ! Frame = "{{0, 0}, {803, 295}}"; }; TabCount = 5; *************** *** 275,279 **** SplitCount = 1; Tab0 = { ! Frame = "{{0, 0}, {260, 686}}"; GroupTreeTableConfiguration = ( SCMStatusColumn, --- 137,141 ---- SplitCount = 1; Tab0 = { ! Frame = "{{0, 0}, {260, 648}}"; GroupTreeTableConfiguration = ( SCMStatusColumn, *************** *** 306,310 **** }; Tab3 = { ! Frame = "{{0, 0}, {191, 686}}"; TargetTableConfiguration = ( ActiveObject, --- 168,172 ---- }; Tab3 = { ! Frame = "{{0, 0}, {191, 648}}"; TargetTableConfiguration = ( ActiveObject, *************** *** 330,357 **** Template = F5F68CF101725D4C0D7A8F4C; ToolbarVisible = YES; ! WindowLocation = "{23, 56}"; }, ); ! PBXWorkspaceStateSaveDate = 62538361; }; perUserProjectItems = { ! 0D0685EC03BA38840047A251 = 0D0685EC03BA38840047A251; ! 0D0685ED03BA38840047A251 = 0D0685ED03BA38840047A251; ! 0D0685EE03BA38840047A251 = 0D0685EE03BA38840047A251; ! 0D0685F003BA38840047A251 = 0D0685F003BA38840047A251; ! 0D0685F103BA38840047A251 = 0D0685F103BA38840047A251; ! 0D0685F203BA38840047A251 = 0D0685F203BA38840047A251; ! 0D0685F303BA38840047A251 = 0D0685F303BA38840047A251; ! 0D0685F403BA38840047A251 = 0D0685F403BA38840047A251; ! 0D0685F503BA38840047A251 = 0D0685F503BA38840047A251; ! 0D0685F603BA38840047A251 = 0D0685F603BA38840047A251; ! 0D0685F703BA38840047A251 = 0D0685F703BA38840047A251; ! 0D248ADE03BA42FC00602EB2 = 0D248ADE03BA42FC00602EB2; ! F50FE3620397818E01AB07D3 = F50FE3620397818E01AB07D3; ! F50FE3630397818E01AB07D3 = F50FE3630397818E01AB07D3; ! F50FE3650397818E01AB07D3 = F50FE3650397818E01AB07D3; ! F50FE3660397818E01AB07D3 = F50FE3660397818E01AB07D3; ! F578B417031587380130DCE9 = F578B417031587380130DCE9; ! F578B419031587380130DCE9 = F578B419031587380130DCE9; }; projectwideBuildSettings = { --- 192,209 ---- Template = F5F68CF101725D4C0D7A8F4C; ToolbarVisible = YES; ! WindowLocation = "{5, 99}"; }, ); ! PBXWorkspaceStateSaveDate = 83139670; }; perUserProjectItems = { ! 0DF740C704F49CA400A8C863 = 0DF740C704F49CA400A8C863; ! 0DF740C804F49CA400A8C863 = 0DF740C804F49CA400A8C863; ! 0DF740C904F49CA400A8C863 = 0DF740C904F49CA400A8C863; ! 0DF740CA04F49CA400A8C863 = 0DF740CA04F49CA400A8C863; ! 0DF740CB04F49CA400A8C863 = 0DF740CB04F49CA400A8C863; ! 0DF740CC04F49CA400A8C863 = 0DF740CC04F49CA400A8C863; ! 0DF740CD04F49CA400A8C863 = 0DF740CD04F49CA400A8C863; ! 0DF740CE04F49CA400A8C863 = 0DF740CE04F49CA400A8C863; }; projectwideBuildSettings = { *************** *** 368,432 **** }; }; ! 0D0685EC03BA38840047A251 = { fRef = F5165EBA01C50A5A0116CAC1; isa = PBXTextBookmark; ! name = "SMySQLResult.m: 838"; rLen = 0; ! rLoc = 27880; rType = 0; ! vrLen = 2465; ! vrLoc = 11508; }; ! 0D0685ED03BA38840047A251 = { isa = PBXTargetBookmark; trg = 0867D69CFE84028FC02AAC07; }; ! 0D0685EE03BA38840047A251 = { isa = PBXTargetBookmark; trg = F51A62D7022D7C2A01952E7A; }; ! 0D0685F003BA38840047A251 = { fRef = F5165EBA01C50A5A0116CAC1; isa = PBXTextBookmark; ! name = "SMySQLResult.m: 838"; rLen = 0; ! rLoc = 27880; rType = 0; ! vrLen = 2465; ! vrLoc = 11508; ! }; ! 0D0685F103BA38840047A251 = { ! isa = PBXTargetBookmark; ! trg = 0867D69CFE84028FC02AAC07; ! }; ! 0D0685F203BA38840047A251 = { ! isa = PBXTargetBookmark; ! trg = F51A62D7022D7C2A01952E7A; }; ! 0D0685F303BA38840047A251 = { isa = PBXTargetBookmark; trg = 0867D69CFE84028FC02AAC07; }; ! 0D0685F403BA38840047A251 = { ! isa = PBXTargetBookmark; ! trg = F51A62D7022D7C2A01952E7A; ! }; ! 0D0685F503BA38840047A251 = { ! isa = PBXTargetBookmark; ! trg = F5649F0E023FDCA201D04C4B; ! }; ! 0D0685F603BA38840047A251 = { isa = PBXTargetBookmark; trg = F51A62D7022D7C2A01952E7A; }; ! 0D0685F703BA38840047A251 = { ! isa = PBXTargetBookmark; ! trg = F5649F0E023FDCA201D04C4B; ! }; ! 0D248ADE03BA42FC00602EB2 = { isa = PBXTargetBookmark; trg = F5649F0E023FDCA201D04C4B; uiCtxt = { ! TOCViewDetailVisibleRect = "{{0, 1110}, {586, 343}}"; TOCViewExpandedItems = ( "com.apple.target-editor-pane.settings", --- 220,324 ---- }; }; ! 0DF740C704F49CA400A8C863 = { fRef = F5165EBA01C50A5A0116CAC1; isa = PBXTextBookmark; ! name = "SMySQLResult.m: 235"; rLen = 0; ! rLoc = 6686; rType = 0; ! vrLen = 1944; ! vrLoc = 5921; }; ! 0DF740C804F49CA400A8C863 = { isa = PBXTargetBookmark; trg = 0867D69CFE84028FC02AAC07; + uiCtxt = { + TOCViewDetailVisibleRect = "{{0, 0}, {596, 445}}"; + TOCViewExpandedItems = ( + "com.apple.target-editor-pane.settings", + "com.apple.target-editor-pane.settings.simple", + "com.apple.target-editor-pane.info-plist", + "com.apple.target-editor-pane.info-plist.simple", + "com.apple.target-editor-pane.buildphases", + ); + TOCViewMasterVisibleRect = "{{0, 0}, {237, 570}}"; + TOCViewSelectedItems = ( + F5777C9001DE6747016C2008, + ); + }; }; ! 0DF740C904F49CA400A8C863 = { isa = PBXTargetBookmark; trg = F51A62D7022D7C2A01952E7A; + uiCtxt = { + TOCViewDetailVisibleRect = "{{0, 0}, {596, 303}}"; + TOCViewExpandedItems = ( + "com.apple.target-editor-pane.settings", + "com.apple.target-editor-pane.settings.simple", + "com.apple.target-editor-pane.info-plist", + "com.apple.target-editor-pane.info-plist.simple", + "com.apple.target-editor-pane.buildphases", + ); + TOCViewMasterVisibleRect = "{{0, 0}, {237, 570}}"; + TOCViewSelectedItems = ( + PBXInfoPlistExpertSettingsEditorModule, + ); + }; }; ! 0DF740CA04F49CA400A8C863 = { ! isa = PBXTargetBookmark; ! trg = F5649F0E023FDCA201D04C4B; ! }; ! 0DF740CB04F49CA400A8C863 = { fRef = F5165EBA01C50A5A0116CAC1; isa = PBXTextBookmark; ! name = "SMySQLResult.m: 235"; rLen = 0; ! rLoc = 6686; rType = 0; ! vrLen = 1944; ! vrLoc = 5921; }; ! 0DF740CC04F49CA400A8C863 = { isa = PBXTargetBookmark; trg = 0867D69CFE84028FC02AAC07; + uiCtxt = { + TOCViewDetailVisibleRect = "{{0, 0}, {596, 445}}"; + TOCViewExpandedItems = ( + "com.apple.target-editor-pane.settings", + "com.apple.target-editor-pane.settings.simple", + "com.apple.target-editor-pane.info-plist", + "com.apple.target-editor-pane.info-plist.simple", + "com.apple.target-editor-pane.buildphases", + ); + TOCViewMasterVisibleRect = "{{0, 0}, {237, 570}}"; + TOCViewSelectedItems = ( + F5777C9001DE6747016C2008, + ); + }; }; ! 0DF740CD04F49CA400A8C863 = { isa = PBXTargetBookmark; trg = F51A62D7022D7C2A01952E7A; + uiCtxt = { + TOCViewDetailVisibleRect = "{{0, 0}, {596, 303}}"; + TOCViewExpandedItems = ( + "com.apple.target-editor-pane.settings", + "com.apple.target-editor-pane.settings.simple", + "com.apple.target-editor-pane.info-plist", + "com.apple.target-editor-pane.info-plist.simple", + "com.apple.target-editor-pane.buildphases", + ); + TOCViewMasterVisibleRect = "{{0, 0}, {237, 570}}"; + TOCViewSelectedItems = ( + PBXInfoPlistExpertSettingsEditorModule, + ); + }; }; ! 0DF740CE04F49CA400A8C863 = { isa = PBXTargetBookmark; trg = F5649F0E023FDCA201D04C4B; uiCtxt = { ! TOCViewDetailVisibleRect = "{{0, 0}, {596, 303}}"; TOCViewExpandedItems = ( "com.apple.target-editor-pane.settings", *************** *** 436,485 **** "com.apple.target-editor-pane.buildphases", ); ! TOCViewMasterVisibleRect = "{{0, 0}, {233, 343}}"; TOCViewSelectedItems = ( ! "com.apple.target-editor-pane.info-plist.simple", ); }; }; - F50FE3620397818E01AB07D3 = { - fRef = F5165EB801C50A5A0116CAC1; - isa = PBXTextBookmark; - name = "SMySQLConnection.m: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1316; - vrLoc = 0; - }; - F50FE3630397818E01AB07D3 = { - fRef = F5165EB901C50A5A0116CAC1; - isa = PBXTextBookmark; - name = "SMySQLResult.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1342; - vrLoc = 0; - }; - F50FE3650397818E01AB07D3 = { - fRef = F5165EB801C50A5A0116CAC1; - isa = PBXTextBookmark; - name = "SMySQLConnection.m: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1316; - vrLoc = 0; - }; - F50FE3660397818E01AB07D3 = { - fRef = F5165EB901C50A5A0116CAC1; - isa = PBXTextBookmark; - name = "SMySQLResult.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1342; - vrLoc = 0; - }; F5165EB701C50A5A0116CAC1 = { uiCtxt = { --- 328,337 ---- "com.apple.target-editor-pane.buildphases", ); ! TOCViewMasterVisibleRect = "{{0, 0}, {237, 570}}"; TOCViewSelectedItems = ( ! PBXInfoPlistExpertSettingsEditorModule, ); }; }; F5165EB701C50A5A0116CAC1 = { uiCtxt = { *************** *** 517,540 **** F5649F0E023FDCA201D04C4B = { activeExec = 0; - }; - F578B417031587380130DCE9 = { - fRef = F5165EB701C50A5A0116CAC1; - isa = PBXTextBookmark; - name = "SMySQLConnection.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1245; - vrLoc = 0; - }; - F578B419031587380130DCE9 = { - fRef = F5165EB701C50A5A0116CAC1; - isa = PBXTextBookmark; - name = "SMySQLConnection.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 1245; - vrLoc = 0; }; } --- 369,372 ---- Index: project.pbxproj =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj/project.pbxproj,v retrieving revision 1.14 retrieving revision 1.14.2.1 diff -C2 -d -r1.14 -r1.14.2.1 *** project.pbxproj 25 Dec 2002 20:51:56 -0000 1.14 --- project.pbxproj 21 Aug 2003 06:33:54 -0000 1.14.2.1 *************** *** 117,121 **** buildSettings = { DYLIB_COMPATIBILITY_VERSION = 1.0.0; ! DYLIB_CURRENT_VERSION = 0.7.0; FRAMEWORK_SEARCH_PATHS = ""; FRAMEWORK_VERSION = A; --- 117,121 ---- buildSettings = { DYLIB_COMPATIBILITY_VERSION = 1.0.0; ! DYLIB_CURRENT_VERSION = 1.0.1; FRAMEWORK_SEARCH_PATHS = ""; FRAMEWORK_VERSION = A; *************** *** 162,166 **** <string>????</string> <key>CFBundleVersion</key> ! <string>1.0.0</string> <key>NSPrincipalClass</key> <string>SMySQLConnection</string> --- 162,166 ---- <string>????</string> <key>CFBundleVersion</key> ! <string>1.0.1d1</string> <key>NSPrincipalClass</key> <string>SMySQLConnection</string> *************** *** 415,419 **** buildSettings = { DYLIB_COMPATIBILITY_VERSION = 1.0.0; ! DYLIB_CURRENT_VERSION = 0.7.0; FRAMEWORK_VERSION = A; HEADER_SEARCH_PATHS = mysqlclient_source/headers; --- 415,419 ---- buildSettings = { DYLIB_COMPATIBILITY_VERSION = 1.0.0; ! DYLIB_CURRENT_VERSION = 1.0.1; FRAMEWORK_VERSION = A; HEADER_SEARCH_PATHS = mysqlclient_source/headers; *************** *** 457,461 **** <string>????</string> <key>CFBundleVersion</key> ! <string>1.0.0</string> <key>NSPrincipalClass</key> <string>SMySQLConnection</string> --- 457,461 ---- <string>????</string> <key>CFBundleVersion</key> ! <string>1.0.1d1</string> <key>NSPrincipalClass</key> <string>SMySQLConnection</string> *************** *** 1940,1944 **** buildSettings = { DYLIB_COMPATIBILITY_VERSION = 1.0.0; ! DYLIB_CURRENT_VERSION = 0.7.0; FRAMEWORK_VERSION = A; LIBRARY_SEARCH_PATHS = /usr/local/lib/mysql; --- 1940,1944 ---- buildSettings = { DYLIB_COMPATIBILITY_VERSION = 1.0.0; ! DYLIB_CURRENT_VERSION = 1.0.1; FRAMEWORK_VERSION = A; LIBRARY_SEARCH_PATHS = /usr/local/lib/mysql; *************** *** 1986,1990 **** <string>????</string> <key>CFBundleVersion</key> ! <string>1.0.0</string> <key>NSPrincipalClass</key> <string>SMySQLConnection</string> --- 1986,1990 ---- <string>????</string> <key>CFBundleVersion</key> ! <string>1.0.1</string> <key>NSPrincipalClass</key> <string>SMySQLConnection</string> |
From: Serge C. <ser...@us...> - 2003-08-22 03:11:19
|
Update of /cvsroot/mysql-cocoa/SMySQL In directory sc8-pr-cvs1:/tmp/cvs-serv6792 Modified Files: MCPResult.m Log Message: Corrected the issue (raised by Lorenz Textor) on BigInt MySQL type (corresponding to long long, not long int), where a BIGINT would be passed back as a 32 bits integer instead of 64 bits. Now MCPResult handles properly BIGINT. Added a BIGINT column in the test1 table (CLI_Test), to check if it is working. NB : Unsigned int (both INT and BIGINT) might still causes problem if they are in the higher half of their range (because they will be interpreted as signed integers). 2003-08-21; Serge Cohen. Index: MCPResult.m =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/MCPResult.m,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MCPResult.m 16 Jan 2003 12:18:23 -0000 1.3 --- MCPResult.m 21 Aug 2003 06:30:52 -0000 1.4 *************** *** 258,261 **** --- 258,262 ---- else { char *theData = calloc(sizeof(char),theLengths[i]+1); + char *theUselLess; memcpy(theData, theRow[i],theLengths[i]); theData[theLengths[i]] = '\0'; *************** *** 264,271 **** case FIELD_TYPE_TINY: case FIELD_TYPE_SHORT: - case FIELD_TYPE_LONG: case FIELD_TYPE_INT24: case FIELD_TYPE_LONGLONG: ! theCurrentObj = [NSNumber numberWithLong:atol(theData)]; break; case FIELD_TYPE_DECIMAL: --- 265,274 ---- case FIELD_TYPE_TINY: case FIELD_TYPE_SHORT: case FIELD_TYPE_INT24: + case FIELD_TYPE_LONG: + theCurrentObj = [NSNumber numberWithLong:atol(theData)]; + break; case FIELD_TYPE_LONGLONG: ! theCurrentObj = [NSNumber numberWithLongLong:strtoq(theData, &theUselLess, 0)]; break; case FIELD_TYPE_DECIMAL: |
From: Serge C. <ser...@us...> - 2003-08-21 08:50:23
|
Update of /cvsroot/mysql-cocoa/SMySQL/CLI_Test In directory sc8-pr-cvs1:/tmp/cvs-serv6792/CLI_Test Modified Files: Make_DB_and_table.mysql Log Message: Corrected the issue (raised by Lorenz Textor) on BigInt MySQL type (corresponding to long long, not long int), where a BIGINT would be passed back as a 32 bits integer instead of 64 bits. Now MCPResult handles properly BIGINT. Added a BIGINT column in the test1 table (CLI_Test), to check if it is working. NB : Unsigned int (both INT and BIGINT) might still causes problem if they are in the higher half of their range (because they will be interpreted as signed integers). 2003-08-21; Serge Cohen. Index: Make_DB_and_table.mysql =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/CLI_Test/Make_DB_and_table.mysql,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Make_DB_and_table.mysql 16 Aug 2003 20:36:23 -0000 1.1 --- Make_DB_and_table.mysql 21 Aug 2003 06:30:52 -0000 1.2 *************** *** 4,8 **** -- Maybe you want to keep the next line commented out, so that if you enrich the DB for your test the modification are not droped. -- DROP DB IF EXISTS test_mysqlclass; ! CREATE DATABASE test_mysqlclass; USE test_mysqlclass; --- 4,8 ---- -- Maybe you want to keep the next line commented out, so that if you enrich the DB for your test the modification are not droped. -- DROP DB IF EXISTS test_mysqlclass; ! CREATE DATABASE IF NOT EXISTS test_mysqlclass; USE test_mysqlclass; *************** *** 13,22 **** test1_desc char(250) NOT NULL default 'non documented', test1_text text NOT NULL default '', PRIMARY KEY (test1_id) ) TYPE=MyISAM COMMENT='A simple test table for CLI_Test application running with SMySQL framework.'; ! INSERT INTO test1 (test1_id, test1_name, test1_desc, test1_text) VALUES (1,'first','first entry in the table', 'this is a text, which is indeed stored in the DB as a blob, hence you have to use the proper method to display it as a NSString rather than NSData...'); ! INSERT INTO test1 (test1_id, test1_name, test1_desc, test1_text) VALUES (2,'second','second entry in the table', 'just to have more than just one line in the test1 table...'); ! INSERT INTO test1 (test1_id, test1_name, test1_desc, test1_text) VALUES (3,'third','third, and last, entry in the table', 'I like multiple lines in DB tables, but I\'m too lazy to go further than 3!!'); --- 13,23 ---- test1_desc char(250) NOT NULL default 'non documented', test1_text text NOT NULL default '', + test1_ll bigint NOT NULL, PRIMARY KEY (test1_id) ) TYPE=MyISAM COMMENT='A simple test table for CLI_Test application running with SMySQL framework.'; ! INSERT INTO test1 (test1_id, test1_name, test1_desc, test1_text, test1_ll) VALUES (1,'first','first entry in the table', 'this is a text, which is indeed stored in the DB as a blob, hence you have to use the proper method to display it as a NSString rather than NSData...', '2147483647'); ! INSERT INTO test1 (test1_id, test1_name, test1_desc, test1_text, test1_ll) VALUES (2,'second','second entry in the table', 'just to have more than just one line in the test1 table...', '2147483648'); ! INSERT INTO test1 (test1_id, test1_name, test1_desc, test1_text, test1_ll) VALUES (3,'third','third, and last, entry in the table', 'I like multiple lines in DB tables, but I\'m too lazy to go further than 3!!', '9223372036854775806'); |
From: Serge C. <ser...@us...> - 2003-08-19 23:31:13
|
Update of /cvsroot/mysql-cocoa/Documentation In directory sc8-pr-cvs1:/tmp/cvs-serv4424 Modified Files: website_update.txt Log Message: Modified the instruction to update the website using CVS synchronisation. It is now shorter (half the number of instruction before). 2003-08-20; Serge Cohen. Index: website_update.txt =================================================================== RCS file: /cvsroot/mysql-cocoa/Documentation/website_update.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** website_update.txt 15 May 2002 13:11:23 -0000 1.1 --- website_update.txt 19 Aug 2003 22:46:42 -0000 1.2 *************** *** 4,12 **** # There update the website (from CVS), remove CVS directory ... cd /home/groups/m/my/mysql-cocoa/ - mv htdocs old_htdocs cvs -dsergecohen@cvs1:/cvsroot/mysql-cocoa co website ! cd website ! find . -name "CVS" -exec rm -rf {} \; ! cd .. mv website htdocs --- 4,10 ---- # There update the website (from CVS), remove CVS directory ... cd /home/groups/m/my/mysql-cocoa/ cvs -dsergecohen@cvs1:/cvsroot/mysql-cocoa co website ! find website -name "CVS" -exec rm -rf {} \; ! mv htdocs old_htdocs mv website htdocs |
From: Serge C. <ser...@us...> - 2003-08-19 10:04:44
|
Update of /cvsroot/mysql-cocoa/Documentation/website/SMySQL_doc In directory sc8-pr-cvs1:/tmp/cvs-serv31190/website/SMySQL_doc Added Files: MCPConnection+MCPFastQueries.html MCPConnection.html MCPResult+MCPResultPlus.html MCPResult.html NSObject+MCPNSNullTest.html Removed Files: SMySQLConnection.html SMySQLResult.html Log Message: Started a big update of the website. Added the latest 2 'new' updates (one for version 2.0, 25 Dec 2002, one for version 2.2.0, yesterday). Still a lot to do (moving most of the updates to an archive file a-la MacGPG, rewriting the about, file, documentation sections). 2003-08-19; Serge Cohen. --- NEW FILE: MCPConnection+MCPFastQueries.html --- <HTML><HEAD><TITLE></TITLE></HEAD> <BODY BGCOLOR="#FFFFFF"> <BR><BR><FONT COLOR="#000066"><H1><A NAME="//apple_ref/occ/cl/MCPConnection (MCPFastQueries)">MCPConnection (MCPFastQueries)</A></H1></FONT><BR> <blockquote><DL><DT><B>Declared In:</B></DT> <DD>MCPFastQueries.h</DD> </DL></blockquote> <BR><BR> <H2>Category Description</H2> <CODE> $Id: MCPConnection+MCPFastQueries.html,v 1.1 2003/08/19 10:04:41 sergecohen Exp $ </CODE><P> This actegory is made up to keep the extra methods out or the core of the framework.<P> Basicly this is the place to add methods which are useful, but are just wrappers to the methods of the core (MCPConnection, MCPResult). The purpous being to have a single line call available for current tasks which otherwise would need a couple of lines and object defined. <P><HR WIDTH=50% ALIGN=LEFT> <H2>Method Types</H2> <blockquote> For insert queries, get directly the Id of the newly inserted row <DL><DT></DT> <DD> <A HREF="#- insertQuery:">- insertQuery:</A></DD> <DD> <A HREF="#- updateQuery:">- updateQuery:</A></DD> </DL> Returns directly a proper NS object, or a collection (NSArray, NSDictionary...). <DL><DT></DT> <DD> <A HREF="#- getFirstFieldFromQuery:">- getFirstFieldFromQuery:</A></DD> <DD> <A HREF="#- getFirstRowFromQuery:asType:">- getFirstRowFromQuery:asType:</A></DD> <DD> <A HREF="#- getAllRowsFromQuery:asType:">- getAllRowsFromQuery:asType:</A></DD> <DD> <A HREF="#- getQuery:colWithIndex:">- getQuery:colWithIndex:</A></DD> <DD> <A HREF="#- getQuery:colWithName:">- getQuery:colWithName:</A></DD> </DL> </blockquote> <HR WIDTH=50% ALIGN=LEFT> <H2>Instance Methods</H2> <A NAME="- getAllRowsFromQuery:asType:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection (MCPFastQueries)/getAllRowsFromQuery:asType:">getAllRowsFromQuery:asType:</A></H3><P> <CODE>- (id)<B>getAllRowsFromQuery:</B>(NSString *)<EM>aQuery</EM> <B>asType:</B>(MCPReturnType)<EM>aType</EM> </CODE><P> Get a bidimensional table of the whole rows of the result from the query <I>aQuery</I>. The type of the result is choosen by <I>aType</I>, it can be (MCPTypeArray, MCPTypeDictionary, MCPTypeFlippedArray & MCPTypeFlippedDictionary). Description of the types can be found in method <CODE>fetch2DResultAsType:</CODE>. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- getFirstFieldFromQuery:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection (MCPFastQueries)/getFirstFieldFromQuery:">getFirstFieldFromQuery:</A></H3><P> <CODE>- (id)<B>getFirstFieldFromQuery:</B>(NSString *)<EM>aQuery</EM> </CODE><P> Get the first field of the first row of the result from the query (<I>aQuery</I>). Should return <B>nil</B> if no object at all are selected. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- getFirstRowFromQuery:asType:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection (MCPFastQueries)/getFirstRowFromQuery:asType:">getFirstRowFromQuery:asType:</A></H3><P> <CODE>- (id)<B>getFirstRowFromQuery:</B>(NSString *)<EM>aQuery</EM> <B>asType:</B>(MCPReturnType)<EM>aType</EM> </CODE><P> Get the firdst row of the result from the query <I>aQuery</I>, in a collection of type determined by <I>aType</I> (MCPTypeArray or MCPTypeDictionary) <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- getQuery:colWithIndex:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection (MCPFastQueries)/getQuery:colWithIndex:">getQuery:colWithIndex:</A></H3><P> <CODE>- (NSArray *)<B>getQuery:</B>(NSString *)<EM>aQuery</EM> <B>colWithIndex:</B>(unsigned int)<EM>aCol</EM> </CODE><P> Get a column (as an NSArray) of the result from the query <I>aQuery</I>. The column is choosen from it's index, starting from 0. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- getQuery:colWithName:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection (MCPFastQueries)/getQuery:colWithName:">getQuery:colWithName:</A></H3><P> <CODE>- (NSArray *)<B>getQuery:</B>(NSString *)<EM>aQuery</EM> <B>colWithName:</B>(NSString *)<EM>aColName</EM> </CODE><P> Get a column (as an NSArray) of the result from the query <I>aQuery</I>. The column is choosen from it's name. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- insertQuery:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection (MCPFastQueries)/insertQuery:">insertQuery:</A></H3><P> <CODE>- (my_ulonglong)<B>insertQuery:</B>(NSString *)<EM>aQuery</EM> </CODE><P> Send the query <I>aQuery</I> to the server and retrieve the row <B>id</B> if the table have a autoincrement column. Returns 0 if no have been inserted <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- updateQuery:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection (MCPFastQueries)/updateQuery:">updateQuery:</A></H3><P> <CODE>- (my_ulonglong)<B>updateQuery:</B>(NSString *)<EM>aQuery</EM> </CODE><P> Send the query <I>aQuery</I> to the server and retrieve the number of affected rows (should work with <CODE>update</CODE>, <CODE>delete</CODE>, <CODE>insert</CODE> and <CODE>select</CODE> type of queries).<P> NB: This can also be used with a <CODE>select</CODE> query if you are only interested in the number of row complying with the query; you'll get no chance to get the result from the query, except by sending the query again (with <CODE>queryString:</CODE>) <P><HR> Version 1.2 Copyright ©2002 by Serge Cohen. All Rights Reserved. Mon Aug 18 14:35:42 2003 <P> </BODY></HTML> --- NEW FILE: MCPConnection.html --- <HTML><HEAD><TITLE></TITLE></HEAD> <BODY BGCOLOR="#FFFFFF"> <BR><BR><FONT COLOR="#000066"><H1><A NAME="//apple_ref/occ/cl/MCPConnection">MCPConnection</A></H1></FONT><BR> <blockquote><DL><DT><B>Inherits From:</B></DT> <DD>NSObject</DD> </DL></blockquote> <blockquote><DL><DT><B>Declared In:</B></DT> <DD>MCPConnection.h</DD> </DL></blockquote> <BR><BR> <H2>Class Description</H2> <CODE> $Id: MCPConnection.html,v 1.1 2003/08/19 10:04:41 sergecohen Exp $ </CODE> <CODE> $Name: $ </CODE><P> This class is used to keep a connection with a MySQL server, it correspond to the MYSQL structure of the C API, or the database handle of the PERL DBI/DBD interface.<P> You have to start any work on a MySQL server by getting a working MCPConnection object.<P> Most likely you will use this kind of code:<P> <CODE> <BR> MCPConnection *theConnec = [MCPConnection alloc]; <BR> MCPResult *theRes;<BR> <BR> theConnec = [theConnec initToHost::albert.com withLogin:@"toto" password:@"albert" port:0]; <BR> [theConnec selectDB:@"db1"]; <BR> theRes = [theConnec queryString:@"select * from table1"]; <BR> ... <BR> </CODE> <P><HR WIDTH=50% ALIGN=LEFT> <H2>Global Variables</H2> <blockquote> <H4>Synopsis:</H4> <CODE>const unsigned int <B><A NAME="//apple_ref/c/data/kMCPConnectionDefaultOption">kMCPConnectionDefaultOption</A></B>;</CODE><BR> <CODE>const char *<B><A NAME="//apple_ref/c/data/kMCPConnectionDefaultSocket">kMCPConnectionDefaultSocket</A></B>;</CODE><BR> <CODE>const unsigned int <B><A NAME="//apple_ref/c/data/kMCPConnectionNotInited">kMCPConnectionNotInited</A></B>;</CODE><BR> </blockquote> <P><HR WIDTH=50% ALIGN=LEFT> <H2>Instance Variables</H2> <blockquote> <CODE>MYSQL *<B>mConnection</B>;</CODE><BR> <CODE>BOOL <B>mConnected</B>;</CODE><BR> <CODE>NSStringEncoding <B>mEncoding</B>;</CODE><BR> <P><TABLE> <TR><TD>mConnection</TD><TD>The inited MySQL connection</TD></TR> <TR><TD>mConnected</TD><TD>Reflect the fact that the connection is already in place or not</TD></TR> <TR><TD>mEncoding</TD><TD>The encoding used by MySQL server, to ISO-1 default</TD></TR> </TABLE> </blockquote> <P><HR WIDTH=50% ALIGN=LEFT> <H2>Method Types</H2> <blockquote> Getting default of MySQL <DL><DT></DT> <DD> <A HREF="#+ getMySQLLocales">+ getMySQLLocales</A></DD> <DD> <A HREF="#+ encodingForMySQLEncoding:">+ encodingForMySQLEncoding:</A></DD> <DD> <A HREF="#+ defaultMySQLEncoding">+ defaultMySQLEncoding</A></DD> </DL> Class maintenance <DL><DT></DT> <DD> <A HREF="#+ initialize">+ initialize</A></DD> </DL> Initialisation <DL><DT></DT> <DD> <A HREF="#- init">- init</A></DD> <DD> <A HREF="#- initToHost:withLogin:password:usingPort:">- initToHost:withLogin:password:usingPort:</A></DD> <DD> <A HREF="#- initToSocket:withLogin:password:">- initToSocket:withLogin:password:</A></DD> <DD> <A HREF="#- setConnectionOption:withArgument:">- setConnectionOption:withArgument:</A></DD> <DD> <A HREF="#- connectWithLogin:password:host:port:socket:">- connectWithLogin:password:host:port:socket:</A></DD> <DD> <A HREF="#- selectDB:">- selectDB:</A></DD> </DL> Errors information <DL><DT></DT> <DD> <A HREF="#- getLastErrorMessage">- getLastErrorMessage</A></DD> <DD> <A HREF="#- getLastErrorID">- getLastErrorID</A></DD> <DD> <A HREF="#- isConnected">- isConnected</A></DD> <DD> <A HREF="#- checkConnection">- checkConnection</A></DD> </DL> Queries <DL><DT></DT> <DD> <A HREF="#- prepareBinaryData:">- prepareBinaryData:</A></DD> <DD> <A HREF="#- prepareString:">- prepareString:</A></DD> <DD> <A HREF="#- queryString:">- queryString:</A></DD> <DD> <A HREF="#- affectedRows">- affectedRows</A></DD> <DD> <A HREF="#- insertId">- insertId</A></DD> </DL> Getting description of the database structure <DL><DT></DT> <DD> <A HREF="#- listDBs">- listDBs</A></DD> <DD> <A HREF="#- listDBsLike:">- listDBsLike:</A></DD> <DD> <A HREF="#- listTables">- listTables</A></DD> <DD> <A HREF="#- listTablesLike:">- listTablesLike:</A></DD> <DD> <A HREF="#- listTablesFromDB:like:">- listTablesFromDB:like:</A></DD> <DD> <A HREF="#- listFieldsFromTable:">- listFieldsFromTable:</A></DD> <DD> <A HREF="#- listFieldsFromTable:like:">- listFieldsFromTable:like:</A></DD> </DL> Server information and control <DL><DT></DT> <DD> <A HREF="#- clientInfo">- clientInfo</A></DD> <DD> <A HREF="#- hostInfo">- hostInfo</A></DD> <DD> <A HREF="#- serverInfo">- serverInfo</A></DD> <DD> <A HREF="#- protoInfo">- protoInfo</A></DD> <DD> <A HREF="#- listProcesses">- listProcesses</A></DD> <DD> <A HREF="#- killProcess:">- killProcess:</A></DD> </DL> Disconnection <DL><DT></DT> <DD> <A HREF="#- disconnect">- disconnect</A></DD> <DD> <A HREF="#- dealloc">- dealloc</A></DD> </DL> String encoding concerns (c string type to NSString). It's unlikely that users of the framework needs to use these methods which are used internally <DL><DT></DT> <DD> <A HREF="#- setEncoding:">- setEncoding:</A></DD> <DD> <A HREF="#- encoding">- encoding</A></DD> <DD> <A HREF="#- cStringFromString:">- cStringFromString:</A></DD> <DD> <A HREF="#- stringWithCString:">- stringWithCString:</A></DD> </DL> Text data convertion to string <DL><DT></DT> <DD> <A HREF="#- stringWithText:">- stringWithText:</A></DD> </DL> </blockquote> <P><HR WIDTH=50% ALIGN=LEFT> <H2>Class Methods</H2> <A NAME="+ defaultMySQLEncoding"></A><H3><A NAME="//apple_ref/occ/clm/MCPConnection/defaultMySQLEncoding">defaultMySQLEncoding</A></H3> <CODE>+ (NSStringEncoding)<B>defaultMySQLEncoding</B> </CODE><P> Returns the default charset of the library mysqlclient used. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="+ encodingForMySQLEncoding:"></A><H3><A NAME="//apple_ref/occ/clm/MCPConnection/encodingForMySQLEncoding:">encodingForMySQLEncoding:</A></H3> <CODE>+ (NSStringEncoding)<B>encodingForMySQLEncoding:</B>(const char *)<EM>mysqlEncoding</EM> </CODE><P> Gets a proper NSStringEncoding according to the given MySQL charset.<P> MySQL 4.0 offers this charsets: big5 cp1251 cp1257 croat czech danish dec8 dos estonia euc_kr gb2312 gbk german1 greek hebrew hp8 hungarian koi8_ru koi8_ukr latin1 latin1_de latin2 latin5 sjis swe7 tis620 ujis usa7 win1250 win1251ukr<P> WARNING : incomplete implementation. Please, send your fixes. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="+ getMySQLLocales"></A><H3><A NAME="//apple_ref/occ/clm/MCPConnection/getMySQLLocales">getMySQLLocales</A></H3> <CODE>+ (NSDictionary *)<B>getMySQLLocales</B> </CODE><P> Gets a proper Locale dictionary to use formater to parse strings from MySQL. For example strings representing dates should give a proper Locales for use with methods such as NSDate::dateWithNaturalLanguageString: locales: <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="+ initialize"></A><H3><A NAME="//apple_ref/occ/clm/MCPConnection/initialize">initialize</A></H3> <CODE>+ (void)<B>initialize</B> </CODE><P> Initialize the class version to 2.0.0 <HR WIDTH=50% ALIGN=LEFT> <H2>Instance Methods</H2> <A NAME="- affectedRows"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/affectedRows">affectedRows</A></H3><P> <CODE>- (my_ulonglong)<B>affectedRows</B> </CODE><P> Returns the number of affected rows by the last query. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- cStringFromString:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/cStringFromString:">cStringFromString:</A></H3><P> <CODE>- (const char *)<B>cStringFromString:</B>(NSString *)<EM>theString</EM> </CODE><P> For internal use only. Transforms a NSString to a C type string (ending with \0) using the character set from the MCPConnection. Lossy conversions are enabled. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- checkConnection"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/checkConnection">checkConnection</A></H3><P> <CODE>- (BOOL)<B>checkConnection</B> </CODE><P> Checks if the connection to the server is still on. If not, tries to reconnect (changing no parameters from the MYSQL pointer). This method just uses mysql_ping(). <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- clientInfo"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/clientInfo">clientInfo</A></H3><P> <CODE>- (NSString *)<B>clientInfo</B> </CODE><P> Returns a string giving the client library version. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- connectWithLogin:password:host:port:socket:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/connectWithLogin:password:host:port:socket:">connectWithLogin:password:host:port:socket:</A></H3><P> <CODE>- (BOOL)<B>connectWithLogin:</B>(NSString *)<EM>login</EM> <B>password:</B>(NSString *)<EM>pass</EM> <B>host:</B>(NSString *)<EM>host</EM> <B>port:</B>(int)<EM>port</EM> <B>socket:</B>(NSString *)<EM>socket</EM> </CODE><P> The method used by <CODE>initToHost:withLogin:password:usingPort:</CODE> and <CODE>initToSocket:withLogin:password:</CODE>. Same information and use of the parameters:<P> - <I>login</I> is the user name - <I>pass</I> is the password corresponding to the user name - <I>host</I> is the hostname or IP adress - <I>port</I> is the TCP <I>port</I> to use to connect. If <I>port</I> = 0, uses the default <I>port</I> from mysql.h - <I>socket</I> is the path to the <I>socket</I> (for the localhost)<P> The <I>socket</I> is used if the <I>host</I> is set to <CODE>@"localhost"</CODE>, to an empty or a <CODE>nil</CODE> string For the moment the implementation might not be safe if you have a <B>nil</B> pointer to one of the NSString* variables (underestand: I don't know what the result will be). <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- dealloc"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/dealloc">dealloc</A></H3><P> <CODE>- (void)<B>dealloc</B> </CODE><P> The standard deallocation method for MCPConnection objects. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- disconnect"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/disconnect">disconnect</A></H3><P> <CODE>- (void)<B>disconnect</B> </CODE><P> Disconnects a connected MCPConnection object; used by <CODE>dealloc:</CODE> method. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- encoding"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/encoding">encoding</A></H3><P> <CODE>- (NSStringEncoding)<B>encoding</B> </CODE><P> Gets the encoding for the connection <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- getLastErrorID"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/getLastErrorID">getLastErrorID</A></H3><P> <CODE>- (unsigned int)<B>getLastErrorID</B> </CODE><P> Returns the ErrorID of the last MySQL error on the connection. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- getLastErrorMessage"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/getLastErrorMessage">getLastErrorMessage</A></H3><P> <CODE>- (NSString *)<B>getLastErrorMessage</B> </CODE><P> Returns a string with the last MySQL error message on the connection. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- hostInfo"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/hostInfo">hostInfo</A></H3><P> <CODE>- (NSString *)<B>hostInfo</B> </CODE><P> Returns a string giving information on the host of the DB server. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- init"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/init">init</A></H3><P> <CODE>- (id)<B>init</B> </CODE><P> Initialise a MySQLConnection without making a connection, most likely useless, except with <CODE>setConnectionOption:withArgument:</CODE>. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- initToHost:withLogin:password:usingPort:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/initToHost:withLogin:password:usingPort:">initToHost:withLogin:password:usingPort:</A></H3><P> <CODE>- (id)<B>initToHost:</B>(NSString *)<EM>host</EM> <B>withLogin:</B>(NSString *)<EM>login</EM> <B>password:</B>(NSString *)<EM>pass</EM> <B>usingPort:</B>(int)<EM>port</EM> </CODE><P> Initialise a connection using a <B>TCP/IP connection</B> with the given parameters (except if <I>host</I> is set to <CODE>localhost</CODE>, in which case uses the default)<P> - <I>host</I> is the hostname or IP adress - <I>login</I> is the user name - <I>pass</I> is the password corresponding to the user name - <I>port</I> is the TCP <I>port</I> to use to connect. If <I>port</I> = 0, uses the default <I>port</I> from mysql.h <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- initToSocket:withLogin:password:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/initToSocket:withLogin:password:">initToSocket:withLogin:password:</A></H3><P> <CODE>- (id)<B>initToSocket:</B>(NSString *)<EM>socket</EM> <B>withLogin:</B>(NSString *)<EM>login</EM> <B>password:</B>(NSString *)<EM>pass</EM> </CODE><P> Initialise a connection using a <B>unix <I>socket</I></B> with the given parameters<P> - <I>socket</I> is the path to the <I>socket</I> - <I>login</I> is the user name - <I>pass</I> is the password corresponding to the user name <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- insertId"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/insertId">insertId</A></H3><P> <CODE>- (my_ulonglong)<B>insertId</B> </CODE><P> If the last query was an insert in a table having a autoindex column, returns the <B>id</B> (autoindexed field) of the last row inserted. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- isConnected"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/isConnected">isConnected</A></H3><P> <CODE>- (BOOL)<B>isConnected</B> </CODE><P> Returns YES if the MCPConnection is connected to a DB, NO otherwise. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- killProcess:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/killProcess:">killProcess:</A></H3><P> <CODE>- (BOOL)<B>killProcess:</B>(unsigned long)<EM>pid</EM> </CODE><P> Kills the process with the given <I>pid</I>. The users needs the <CODE>Process_priv</CODE> privilege. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- listDBs"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/listDBs">listDBs</A></H3><P> <CODE>- (MCPResult *)<B>listDBs</B> </CODE><P> Just a fast wrapper for the more complex <CODE>listDBsWithPattern:</CODE> method. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- listDBsLike:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/listDBsLike:">listDBsLike:</A></H3><P> <CODE>- (MCPResult *)<B>listDBsLike:</B>(NSString *)<EM>dbsName</EM> </CODE><P> Returns a list of database which name correspond to the SQL regular expression in 'pattern'. The comparison is done with wild card extension : % and _. The result should correspond to the queryString:@"SHOW databases [LIKE wild]"; but implemented with mysql_list_dbs. If an empty string or <B>nil</B> is passed as pattern, all databases will be shown. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- listFieldsFromTable:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/listFieldsFromTable:">listFieldsFromTable:</A></H3><P> <CODE>- (MCPResult *)<B>listFieldsFromTable:</B>(NSString *)<EM>tableName</EM> </CODE><P> Just a fast wrapper for the more complex list <CODE>listFieldsWithPattern:forTable:</CODE> method. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- listFieldsFromTable:like:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/listFieldsFromTable:like:">listFieldsFromTable:like:</A></H3><P> <CODE>- (MCPResult *)<B>listFieldsFromTable:</B>(NSString *)<EM>tableName</EM> <B>like:</B>(NSString *)<EM>fieldsName</EM> </CODE><P> Show all the fields of the table <I>tableName</I> which name correspond to pattern (with wild card expansion : %,_). Indeed, and as recommanded from mysql reference, this method is NOT using mysql_list_fields but the <CODE>queryString:</CODE> method. If an empty string or <B>nil</B> is passed as <I>fieldsName</I>, all fields (of <I>tableName</I>) will be returned. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- listProcesses"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/listProcesses">listProcesses</A></H3><P> <CODE>- (MCPResult *)<B>listProcesses</B> </CODE><P> Lists active process <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- listTables"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/listTables">listTables</A></H3><P> <CODE>- (MCPResult *)<B>listTables</B> </CODE><P> Make sure a DB is selected (with <CODE>selectDB:</CODE> method) first. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- listTablesFromDB:like:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/listTablesFromDB:like:">listTablesFromDB:like:</A></H3><P> <CODE>- (MCPResult *)<B>listTablesFromDB:</B>(NSString *)<EM>dbName</EM> <B>like:</B>(NSString *)<EM>tablesName</EM> </CODE><P> List tables in DB specified by <I>dbName</I> and corresponding to pattern. This method indeed issues a <CODE>SHOW TABLES FROM dbName LIKE ...</CODE> query to the server. This is done this way to make sure the selected DB is not changed by this method. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- listTablesLike:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/listTablesLike:">listTablesLike:</A></H3><P> <CODE>- (MCPResult *)<B>listTablesLike:</B>(NSString *)<EM>tablesName</EM> </CODE><P> From within a database, give back the list of table which name correspond to <I>tablesName</I> (with wild card %, _ extension). Correspond to queryString:@"SHOW tables [LIKE wild]"; uses mysql_list_tables function. If an empty string or <B>nil</B> is passed as <I>tablesName</I>, all tables will be shown. WARNING: <B>produce an error if no databases are selected</B> (with <CODE>selectDB:</CODE> for example). <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- prepareBinaryData:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/prepareBinaryData:">prepareBinaryData:</A></H3><P> <CODE>- (NSString *)<B>prepareBinaryData:</B>(NSData *)<EM>theData</EM> </CODE><P> Takes a NSData object and transform it in a proper string for sending to the server in between quotes. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- prepareString:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/prepareString:">prepareString:</A></H3><P> <CODE>- (NSString *)<B>prepareString:</B>(NSString *)<EM>theString</EM> </CODE><P> Takes a string and escape any special character (like single quote : ') so that the string can be used directly in a query. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- protoInfo"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/protoInfo">protoInfo</A></H3><P> <CODE>- (NSNumber *)<B>protoInfo</B> </CODE><P> Returns the number of the protocole used to transfer info from server to client <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- queryString:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/queryString:">queryString:</A></H3><P> <CODE>- (MCPResult *)<B>queryString:</B>(NSString *)<EM>query</EM> </CODE><P> Takes a <I>query</I> string and return an MCPResult object holding the result of the <I>query</I>. The returned MCPResult is not retained, the client is responsible for that (it's autoreleased before being returned). If no field are present in the result (like in an insert <I>query</I>), will return <B>nil</B> (<B>difference from previous version implementation</B>). Though, if their is at least one field the result will be non <B>nil</B> (even if no row are selected).<P> Note that if you want to use this method with binary data (in the <I>query</I>), you should use <CODE>prepareBinaryData:</CODE> to include the binary data in the <I>query</I> string. Also if you want to include in your <I>query</I> a string containing any special character (\, ', " ...) then you should use <CODE>prepareString</CODE>. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- selectDB:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/selectDB:">selectDB:</A></H3><P> <CODE>- (BOOL)<B>selectDB:</B>(NSString *)<EM>dbName</EM> </CODE><P> Selects a database to work with. The MCPConnection object needs to be properly inited and connected to a server. If a connection is not yet set or the selection of the database didn't work, returns NO. Returns YES in normal cases where the database is properly selected.<P> So far, if <I>dbName</I> is a <B>nil</B> pointer it will return NO (as if it cannot connect), most likely this will throw an exception in the future. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- serverInfo"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/serverInfo">serverInfo</A></H3><P> <CODE>- (NSString *)<B>serverInfo</B> </CODE><P> Returns a string giving the server version. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- setConnectionOption:withArgument:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/setConnectionOption:withArgument:">setConnectionOption:withArgument:</A></H3><P> <CODE>- (BOOL)<B>setConnectionOption:</B>(int)<EM>option</EM> <B>withArgument:</B>(id)<EM>arg</EM> </CODE><P> <B>NOT YET IMPLEMENTED</B><P> This method is to be used for getting special <I>option</I> for a connection, in which case the MCPConnection has to be inited with the init method, then <I>option</I> are selected, finally connection is done using one of the connect methods:<P> <CODE> <BR> MCPConnection *theConnect = [[MCPConnection alloc] init]; <BR> [theConnect setConnectionOption: option withArgument: arg]; <BR> [theConnect connectToHost:albert.com withLogin:@"toto" password:@"albert" port:0]; <BR> .... <BR> </CODE> <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- setEncoding:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/setEncoding:">setEncoding:</A></H3><P> <CODE>- (void)<B>setEncoding:</B>(NSStringEncoding)<EM>theEncoding</EM> </CODE><P> Sets the encoding used by the server for data transfert. Used to make sure the output of the query result is ok even for non-ascii characters The character set (encoding) used by the db is passed to the MCPConnection object upon connection, so most likely the encoding (from -encoding) method is already the proper one. That is to say : It's unlikely you will need to call this method directly, and <B>if ever you use it, do it at your own risks</B>. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- stringWithCString:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/stringWithCString:">stringWithCString:</A></H3><P> <CODE>- (NSString *)<B>stringWithCString:</B>(const char *)<EM>theCString</EM> </CODE><P> Returns a NSString from a C style string encoded with the character set of theMCPConnection. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- stringWithText:"></A><H3><A NAME="//apple_ref/occ/instm/MCPConnection/stringWithText:">stringWithText:</A></H3><P> <CODE>- (NSString *)<B>stringWithText:</B>(NSData *)<EM>theTextData</EM> </CODE><P> Use the string encoding to convert the returned NSData to a string (for a Text field) <P><HR> Version 1.5 Copyright ©2003 by Serge Cohen. All Rights Reserved. Mon Aug 18 14:35:42 2003 <P> </BODY></HTML> --- NEW FILE: MCPResult+MCPResultPlus.html --- <HTML><HEAD><TITLE></TITLE></HEAD> <BODY BGCOLOR="#FFFFFF"> <BR><BR><FONT COLOR="#000066"><H1><A NAME="//apple_ref/occ/cl/MCPResult (MCPResultPlus)">MCPResult (MCPResultPlus)</A></H1></FONT><BR> <blockquote><DL><DT><B>Declared In:</B></DT> <DD>MCPResultPlus.h</DD> </DL></blockquote> <BR><BR> <H2>Category Description</H2> <CODE> $Id: MCPResult+MCPResultPlus.html,v 1.1 2003/08/19 10:04:41 sergecohen Exp $ </CODE><P> This Category is provided to get shortcuts reformat the table obtained by a MCPResult (fetching a column, a 2D array...). <P><HR WIDTH=50% ALIGN=LEFT> <H2>Method Types</H2> <blockquote> Getting a complete column as an array <DL><DT></DT> <DD> <A HREF="#- fetchColAtIndex:">- fetchColAtIndex:</A></DD> <DD> <A HREF="#- fetchColWithName:">- fetchColWithName:</A></DD> </DL> Getting the complete result as 2D array <DL><DT></DT> <DD> <A HREF="#- fetch2DResultAsType:">- fetch2DResultAsType:</A></DD> </DL> </blockquote> <HR WIDTH=50% ALIGN=LEFT> <H2>Instance Methods</H2> <A NAME="- fetch2DResultAsType:"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult (MCPResultPlus)/fetch2DResultAsType:">fetch2DResultAsType:</A></H3><P> <CODE>- (id)<B>fetch2DResultAsType:</B>(MCPReturnType)<EM>aType</EM> </CODE><P> Returns the complete result table in a 2D object, which type depends on <I>aType</I>:<P> - <CODE>MCPTypeArray</CODE> : a NSArray of rows as NSArray,<P> - <CODE>MCPTypeDictionary</CODE> : a NSArray of rows as NSDictionary,<P> - <CODE>MCPTypeFlippedArray</CODE> : a NSArray of columns (as NSArray),<P> - <CODE>MCPTypeFlippedDictionary</CODE> : a NSDictionary of columns (as NSArray)<P> In any case the read position is restored at the end of the call (hence a fetchRow will get the same row wether this method is called before it or not). <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- fetchColAtIndex:"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult (MCPResultPlus)/fetchColAtIndex:">fetchColAtIndex:</A></H3><P> <CODE>- (NSArray *)<B>fetchColAtIndex:</B>(unsigned int)<EM>aCol</EM> </CODE><P> Getting a complete column into a NSArray (1D). The index starts from 0 (first column).<P> The index 0 of the returned array always correspond to the first row (ie: returned NSArray is indexed by row number), the read position is restored after to it's initial position after the read. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- fetchColWithName:"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult (MCPResultPlus)/fetchColWithName:">fetchColWithName:</A></H3><P> <CODE>- (NSArray *)<B>fetchColWithName:</B>(NSString *)<EM>aColName</EM> </CODE><P> The same as <CODE>fetchColAtIndex:</CODE>, but the choice of the column is done by it's field name. Indeed it is just a wrapper to <CODE>fetchColAtIndex</CODE>. <P><HR> Version 1.2 Copyright ©2002 by Serge Cohen. All Rights Reserved. Mon Aug 18 14:35:42 2003 <P> </BODY></HTML> --- NEW FILE: MCPResult.html --- <HTML><HEAD><TITLE></TITLE></HEAD> <BODY BGCOLOR="#FFFFFF"> <BR><BR><FONT COLOR="#000066"><H1><A NAME="//apple_ref/occ/cl/MCPResult">MCPResult</A></H1></FONT><BR> <blockquote><DL><DT><B>Inherits From:</B></DT> <DD>NSObject</DD> </DL></blockquote> <blockquote><DL><DT><B>Declared In:</B></DT> <DD>MCPResult.h</DD> </DL></blockquote> <BR><BR> <H2>Class Description</H2> <CODE> $Id: MCPResult.html,v 1.1 2003/08/19 10:04:41 sergecohen Exp $ </CODE><P> Hold the results of a query to a MySQL database server. It correspond to the MYSQL_RES structure of the C API, and to the statement handle of the PERL DBI/DBD.<P> Uses the <CODE>mysql_store_result()</CODE> function from the C API.<P> This object is generated only by a MCPConnection object, in this way (see <B>MCPConnection</B> documentation):<P> <CODE> <BR> MCPConnection *theConnec = [MCPConnection alloc]; <BR> MCPResult *theRes; <BR> NSDictionnary *theDict; <BR> NSArray *theColNames; <BR> int i, j;<BR> <BR> theConnec = [theConnec initToHost::albert.com withLogin:@"toto" password:@"albert" port:0]; <BR> [theConnec selectDB:@"db1"]; <BR> theRes = [theConnec queryString:@"select * from table1"]; <BR> theColNames = [theRes fetchFiedlsName]; <BR> i = 0; <BR> while (theDict = [theRes fetchRowAsDictionary]){ <BR> NSLog(@"Row : <I>d</I>\n", i); <BR> for (j=0; j<[theColNames count]; j++) { <BR> NSLog(@" Field : %@, contain : %@\n", [theColNames objectAtInex:j], [theDict objectForKey:[theColNames objectAtIndex:j]]); <BR> }<BR> i++; <BR> }<BR> </CODE> <P><HR WIDTH=50% ALIGN=LEFT> <H2>Instance Variables</H2> <blockquote> <CODE>MYSQL_RES *<B>mResult</B>;</CODE><BR> <CODE>NSArray *<B>mNames</B>;</CODE><BR> <CODE>NSDictionary *<B>mMySQLLocales</B>;</CODE><BR> <CODE>NSStringEncoding <B>mEncoding</B>;</CODE><BR> <CODE>unsigned int <B>mNumOfFields</B>;</CODE><BR> <P><TABLE> <TR><TD>mResult</TD><TD>The MYSQL_RES structure of the C API</TD></TR> <TR><TD>mNames</TD><TD>An NSArray holding the name of the columns</TD></TR> <TR><TD>mMySQLLocales</TD><TD>A Locales dictionary to define the locales of MySQL</TD></TR> <TR><TD>mEncoding</TD><TD>The encoding used by MySQL server, to ISO-1 default</TD></TR> <TR><TD>mNumOfFields</TD><TD>The number of fields in the result</TD></TR> </TABLE> </blockquote> <P><HR WIDTH=50% ALIGN=LEFT> <H2>Method Types</H2> <blockquote> Class maintenance <DL><DT></DT> <DD> <A HREF="#+ initialize">+ initialize</A></DD> </DL> Init used <B>only</B> by <B>MCPConnection</B> <DL><DT></DT> <DD> <A HREF="#- initWithMySQLPtr:encoding:">- initWithMySQLPtr:encoding:</A></DD> <DD> <A HREF="#- initWithResPtr:encoding:">- initWithResPtr:encoding:</A></DD> <DD> <A HREF="#- init">- init</A></DD> </DL> General info on the result <DL><DT></DT> <DD> <A HREF="#- numOfRows">- numOfRows</A></DD> <DD> <A HREF="#- numOfFields">- numOfFields</A></DD> </DL> Getting the rows <DL><DT></DT> <DD> <A HREF="#- dataSeek:">- dataSeek:</A></DD> <DD> <A HREF="#- fetchRowAsType:">- fetchRowAsType:</A></DD> <DD> <A HREF="#- fetchRowAsArray">- fetchRowAsArray</A></DD> <DD> <A HREF="#- fetchRowAsDictionary">- fetchRowAsDictionary</A></DD> </DL> Getting information on columns <DL><DT></DT> <DD> <A HREF="#- fetchFieldsName">- fetchFieldsName</A></DD> <DD> <A HREF="#- fetchTypesAsType:">- fetchTypesAsType:</A></DD> <DD> <A HREF="#- fetchTypesAsArray">- fetchTypesAsArray</A></DD> <DD> <A HREF="#- fetchTypesAsDictionary">- fetchTypesAsDictionary</A></DD> <DD> <A HREF="#- isBlobAtIndex:">- isBlobAtIndex:</A></DD> <DD> <A HREF="#- isBlobForKey:">- isBlobForKey:</A></DD> </DL> Text data convertion to string <DL><DT></DT> <DD> <A HREF="#- stringWithText:">- stringWithText:</A></DD> </DL> Utility method <DL><DT></DT> <DD> <A HREF="#- description">- description</A></DD> </DL> End of the scope... <DL><DT></DT> <DD> <A HREF="#- dealloc">- dealloc</A></DD> </DL> Private methods, internal use only <DL><DT></DT> <DD> <A HREF="#- cStringFromString:">- cStringFromString:</A></DD> <DD> <A HREF="#- stringWithCString:">- stringWithCString:</A></DD> </DL> </blockquote> <P><HR WIDTH=50% ALIGN=LEFT> <H2>Class Methods</H2> <A NAME="+ initialize"></A><H3><A NAME="//apple_ref/occ/clm/MCPResult/initialize">initialize</A></H3> <CODE>+ (void)<B>initialize</B> </CODE><P> Initialize the class version to 2.0.0 <HR WIDTH=50% ALIGN=LEFT> <H2>Instance Methods</H2> <A NAME="- cStringFromString:"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/cStringFromString:">cStringFromString:</A></H3><P> <CODE>- (const char *)<B>cStringFromString:</B>(NSString *)<EM>theString</EM> </CODE><P> For internal use only. Transform a NSString to a C type string (ended with \0) using ethe character set from the MCPConnection. Lossy conversions are enabled. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- dataSeek:"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/dataSeek:">dataSeek:</A></H3><P> <CODE>- (void)<B>dataSeek:</B>(my_ulonglong)<EM>row</EM> </CODE><P> Go to a precise <I>row</I> in the selected result. 0 is the very first <I>row</I> <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- dealloc"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/dealloc">dealloc</A></H3><P> <CODE>- (void)<B>dealloc</B> </CODE><P> No method description. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- description"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/description">description</A></H3><P> <CODE>- (NSString *)<B>description</B> </CODE><P> Return a (long) string containing the table of results, first line being the fields name, next line(s) the row(s). Useful to have NSLog logging a MCPResult (example). <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- fetchFieldsName"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/fetchFieldsName">fetchFieldsName</A></H3><P> <CODE>- (NSArray *)<B>fetchFieldsName</B> </CODE><P> Generate the mNames if not already generated, and return it.<P> mNames is a NSArray holding the names of the fields(columns) of the results <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- fetchRowAsArray"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/fetchRowAsArray">fetchRowAsArray</A></H3><P> <CODE>- (NSArray *)<B>fetchRowAsArray</B> </CODE><P> Return the next row of the result as an array, the index in select field order, the object a proper object for handling the information in the field (NSString, NSNumber ...).<P> Just a <B>typed</B> wrapper for method <CODE>fetchRosAsType:</CODE> (with arg MCPTypeArray).<P> NB: Returned object is immutable. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- fetchRowAsDictionary"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/fetchRowAsDictionary">fetchRowAsDictionary</A></H3><P> <CODE>- (NSDictionary *)<B>fetchRowAsDictionary</B> </CODE><P> Return the next row of the result as a dictionary, the key being the field name, the object a proper object for handling the information in the field (NSString, NSNumber ...).<P> Just a <B>typed</B> wrapper for method <CODE>fetchRosAsType:</CODE> (with arg MCPTypeDictionary).<P> NB: Returned object is immutable. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- fetchRowAsType:"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/fetchRowAsType:">fetchRowAsType:</A></H3><P> <CODE>- (id)<B>fetchRowAsType:</B>(MCPReturnType)<EM>aType</EM> </CODE><P> Return the next row of the result as a collection of type defined by <I>aType</I> (namely MCPTypeArray or MCPTypeDictionary). Each field of the row is made into a proper object to hold the info (NSNumber, NSString...).<P> This method returned directly the <B>mutable</B> object generated while going through all the columns <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- fetchTypesAsArray"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/fetchTypesAsArray">fetchTypesAsArray</A></H3><P> <CODE>- (NSArray *)<B>fetchTypesAsArray</B> </CODE><P> Return an array of the fields' types.<P> NB: Returned object is immutable. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- fetchTypesAsDictionary"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/fetchTypesAsDictionary">fetchTypesAsDictionary</A></H3><P> <CODE>- (NSDictionary *)<B>fetchTypesAsDictionary</B> </CODE><P> Return a dictionnary of the fields' types (keys are the fields' names).<P> NB: Returned object is immutable. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- fetchTypesAsType:"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/fetchTypesAsType:">fetchTypesAsType:</A></H3><P> <CODE>- (id)<B>fetchTypesAsType:</B>(MCPReturnType)<EM>aType</EM> </CODE><P> Return a collection of the fields's type. The type of collection is choosen by the <I>aType</I> variable (MCPTypeArray or MCPTypeDictionary).<P> This method returned directly the <B>mutable</B> object generated while going through all the columns <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- init"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/init">init</A></H3><P> <CODE>- (id)<B>init</B> </CODE><P> Empty init, normaly of NO use to the user, again, MCPResult should be made through calls to MCPConnection <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- initWithMySQLPtr:encoding:"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/initWithMySQLPtr:encoding:">initWithMySQLPtr:encoding:</A></H3><P> <CODE>- (id)<B>initWithMySQLPtr:</B>(MYSQL *)<EM>mySQLPtr</EM> <B>encoding:</B>(NSStringEncoding)<EM>theEncoding</EM> </CODE><P> initialise a MCPResult, it is used internally by MCPConnection <CODE>queryString:</CODE> method: the only proper way to get a running MCPResult object. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- initWithResPtr:encoding:"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/initWithResPtr:encoding:">initWithResPtr:encoding:</A></H3><P> <CODE>- (id)<B>initWithResPtr:</B>(MYSQL_RES *)<EM>mySQLResPtr</EM> <B>encoding:</B>(NSStringEncoding)<EM>theEncoding</EM> </CODE><P> This metod it is used internally by MCPConnection object when it have already a MYSQL_RES object to initialise MCPResult object. Initialise a MCPResult with the MYSQL_RES pointer (returned by such a function as mysql_list_dbs). NB: MCPResult should be made by using one of the method of MCPConnection. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- isBlobAtIndex:"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/isBlobAtIndex:">isBlobAtIndex:</A></H3><P> <CODE>- (BOOL)<B>isBlobAtIndex:</B>(unsigned int)<EM>index</EM> </CODE><P> Return YES if the field with the given <I>index</I> is a BLOB. It should be used to discriminates between BLOBs and TEXTs.<P> <B>NOT YET IMPLEMENTED</B>, return YES for both BLOBs and TEXTs... <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- isBlobForKey:"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/isBlobForKey:">isBlobForKey:</A></H3><P> <CODE>- (BOOL)<B>isBlobForKey:</B>(NSString *)<EM>key</EM> </CODE><P> Return YES if the field (by name) with the given index is a BLOB. It should be used to discriminates between BLOBs and TEXTs.<P> <B>NOT YET IMPLEMENTED</B>, return YES for both BLOBs and TEXTs... <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- numOfFields"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/numOfFields">numOfFields</A></H3><P> <CODE>- (unsigned int)<B>numOfFields</B> </CODE><P> Return the number of fields selected by the query. As a side effect it forces an update of the number of fields. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- numOfRows"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/numOfRows">numOfRows</A></H3><P> <CODE>- (my_ulonglong)<B>numOfRows</B> </CODE><P> Return the number of rows selected by the query. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- stringWithCString:"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/stringWithCString:">stringWithCString:</A></H3><P> <CODE>- (NSString *)<B>stringWithCString:</B>(const char *)<EM>theCString</EM> </CODE><P> Return a NSString from a C style string encoded with the character set of theMCPConnection. <P><HR WIDTH=25% ALIGN=LEFT> <A NAME="- stringWithText:"></A><H3><A NAME="//apple_ref/occ/instm/MCPResult/stringWithText:">stringWithText:</A></H3><P> <CODE>- (NSString *)<B>stringWithText:</B>(NSData *)<EM>theTextData</EM> </CODE><P> Use the string encoding to convert the returned NSData to a string (for a Text field) <P><HR> Version 1.2 Copyright ©2002 by Serge Cohen. All Rights Reserved. Mon Aug 18 14:35:42 2003 <P> </BODY></HTML> --- NEW FILE: NSObject+MCPNSNullTest.html --- <HTML><HEAD><TITLE></TITLE></HEAD> <BODY BGCOLOR="#FFFFFF"> <BR><BR><FONT COLOR="#000066"><H1><A NAME="//apple_ref/occ/cl/NSObject (MCPNSNullTest)">NSObject (MCPNSNullTest)</A></H1></FONT><BR> <blockquote><DL><DT><B>Declared In:</B></DT> <DD>MCPNull.h</DD> </DL></blockquote> <BR><BR> <H2>Category Description</H2> <CODE> $Id: NSObject+MCPNSNullTest.html,v 1.1 2003/08/19 10:04:41 sergecohen Exp $ </CODE><P> This Category is meant to make any kind of object the possible target to the test (isNSNull) <P><HR WIDTH=50% ALIGN=LEFT> <H2>Method Types</H2> <blockquote> Addin to NSObject. <DL><DT></DT> <DD> <A HREF="#- isNSNull">- isNSNull</A></DD> </DL> </blockquote> <HR WIDTH=50% ALIGN=LEFT> <H2>Instance Methods</H2> <A NAME="- isNSNull"></A><H3><A NAME="//apple_ref/occ/instm/NSObject (MCPNSNullTest)/isNSNull">isNSNull</A></H3><P> <CODE>- (BOOL)<B>isNSNull</B> </CODE><P> No method description. <P><HR> Version 1.2 Copyright ©2002 by Serge Cohen. All Rights Reserved. Mon Aug 18 14:35:42 2003 <P> </BODY></HTML> --- SMySQLConnection.html DELETED --- --- SMySQLResult.html DELETED --- |
From: Serge C. <ser...@us...> - 2003-08-19 10:04:43
|
Update of /cvsroot/mysql-cocoa/Documentation/website In directory sc8-pr-cvs1:/tmp/cvs-serv31190/website Modified Files: index.html styles.css Log Message: Started a big update of the website. Added the latest 2 'new' updates (one for version 2.0, 25 Dec 2002, one for version 2.2.0, yesterday). Still a lot to do (moving most of the updates to an archive file a-la MacGPG, rewriting the about, file, documentation sections). 2003-08-19; Serge Cohen. Index: index.html =================================================================== RCS file: /cvsroot/mysql-cocoa/Documentation/website/index.html,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** index.html 15 May 2002 12:52:37 -0000 1.13 --- index.html 19 Aug 2003 10:04:41 -0000 1.14 *************** *** 5,11 **** <TITLE>MySQL Cocoa Project</TITLE> <META name="author" content="Serge Cohen"> ! <META name="copyright" content="2002 MySQL Cocoa project"> ! <META name="keywords" content="free software, gnu, GNU, database, mysql, MySQL, Objective-C, objective-c, mac, macintosh, mac os x, Mac OS X, API, DB API, Cocoa, cocoa"> ! <META name="description" content="A project to bring a Objective-C API for MySQL to MacOS X Cocoa environment"> </HEAD> --- 5,11 ---- <TITLE>MySQL Cocoa Project</TITLE> <META name="author" content="Serge Cohen"> ! <META name="copyright" content="2002, Serge Cohen"> ! <META name="keywords" content="free software, gnu, GNU, database, mysql, MySQL, Objective-C, objective-c, mac, macintosh, mac os x, Mac OS X, API, DB API, Cocoa, cocoa, MacOS X, MacOSX"> ! <META name="description" content="A project to implement an Objective-C API for MySQL to MacOS X Cocoa environment"> </HEAD> *************** *** 26,29 **** --- 26,43 ---- <a name="updates"><h2>Updates</h2></a> + <p class="withlist"><em>18 August 2003:</em> Released the version 2.2.0 of the framework. The API is kept unchanged, the main difference is in the project organisation (in Project Builder). I also have tried to make the aim of each target more clear, and cleaned up the build-styles, in that respect I have defined 3 different names for each of the flavours (corresponding to 3 different targets) of the framework (which BTW have also changed):</p> + <ol class="intext"> + <li class="intext"><em>SMySQL :</em> A <em>system-wide</em> framework, using the <em>dynamic</em> version of libmysqlclient.</li> + <li class="intext"><em>SMySQL_static :</em> A <em>system-wide</em> framework, using the <em>static</em> version of libmysqlclient.</li> + <li class="intext"><em>SMySQL_bundled :</em> A <em>bundled</em> framework (for bundling within Cocoa application), using the <em>static</em> version of libmysqlclient.</li> + </ol> + <p class="afterwithlist">Also modified the way the libmysqlclient static library is used, now a binary version of the library is distributed with the sources of the framework (the sources of the libmysqlclient used to be included in the project and compiled when building the framework). This way makes it easier if someone prefers to use it's own version of the libmysqlcleint library.</p> + <p class="withlist"><em>24 December 2002:</em> Posted the file releases for the version 2.0 of the framework. This correspond to both a source and a binary release. This version of the framework has a new API:</p> + <ul class="intext"> + <li class="intext">The class prefix is changed to be MCP (for MySQL Cocoa Project), from the "longer" SMySQL (though the framework has not changed name, neither the main header SMySQl/SMySQL.h)</li> + <li class="intext">I have added some categories on MCPConnection and MCPResult to implement shortcuts to obtains fast some result (for exemple a column of a table, or just the first element --Row 0, Colulmn 0--...)</li> + <li class="intext">Also added a category on NSObject to provide a single method to check if an object is a instance of NSNull (used whenever a field is set to NULL in a retrieved table).</li> + </ul> + <p class="afterwithlist">I also have discontinued the distribution of <a href="Display">MySQL Display</a> application, mainly because their is a much better developed free software doing the same thing AND using the SMySQL framework <a href="http://cocoamysql.sourceforge.net/">CocoaMySQL</a>. At some point I'll try to implement a simple example application with a GUI, for easing the use of the framework.</p> <p><em>15 May 2002:</em> Important changes to the framework: The two connect (<code>connectToHost:.. connectToSocket:..</code>) method have been replaced by a single method (<code>connectWithLogin:password:host:port:socket:</code>). In the mean time the syntax of the list methods (<code>listDBs ...</code>) have been changed to look more like the SQL <code>SHOW</code> statments. Some shortcuts to such methods have been added. Any one using the framework should port to the new version, the interface will be kept until version 1.0 (with maybe adding method, but no removing nor renaming). This version is available on CVS and <a href="#sources">File Release</a>. At last a new binary of <a href="Display">MySQL Display</a> contain the last version of the framework.</p> <p><em>7 May 2002:</em> Cleaned up the methods from May 3rd, (databases, tables, fields list). Finished the proper encoding of the character sets (should run Ok with latin1, latin2, win1250, cp1251, euc_kr, sjis). Added methods to check the version of the protocole, the client library, the server, and to get info on the database server the host. The framework has been promoted to version 0.6.0. It's under CVS, but also on the <a href="#sources">File Release</a>.</p> *************** *** 164,167 **** --- 178,188 ---- <p class="linkinfo">Where to go to see the development.</p> </td></tr> + <tr><td> + <p class="link"><a href="http://cocoamysql.sourceforge.net/">CocoaMySQL</a></p> + </td> + <td> + <p class="linkinfo">A very nice Generic GUI MySQL client (in Cocoa)... and it's free software!!</p> + </td> + </tr> </table> </div> Index: styles.css =================================================================== RCS file: /cvsroot/mysql-cocoa/Documentation/website/styles.css,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** styles.css 11 Jan 2002 16:19:54 -0000 1.1.1.1 --- styles.css 19 Aug 2003 10:04:41 -0000 1.2 *************** *** 73,76 **** --- 73,89 ---- text-align: justify; } + TD P { + margin-top: 0pt; + margin-bottom: 0pt; + } + + P.withlist { + margin-bottom: 0.5em; + } + + P.afterwithlist { + margin-top: 0pt; + margin-bottom: 0.5em; + } P.zeroIndent { *************** *** 118,122 **** } ! SPAN {} DT SPAN { --- 131,143 ---- } ! SPAN { ! margin-top: 0pt; ! margin-bottom: 0pt; ! } ! ! TR SPAN { ! margin-top: 0pt; ! margin-bottom: 0pt; ! } DT SPAN { *************** *** 159,163 **** TD.head P { color: #ffffff; ! text-indent: 0 pt; font-size: 10pt; font-family: Geneva, sans-serif; --- 180,184 ---- TD.head P { color: #ffffff; ! text-indent: 0pt; font-size: 10pt; font-family: Geneva, sans-serif; *************** *** 172,173 **** --- 193,217 ---- text-align: left; } + + LI.intext { + margin-bottom: 0.4em; + text-indent: 0pt; + font-family: RotisSemiSans, Helvetica, sans-serif; + text-align: left; + } + + UL {} + + UL.intext { + margin-top: 0pt; + margin-bottom: 0.5em; + } + + OL {} + + OL.intext { + margin-top: 0pt; + margin-bottom: 0.5em; + } + + |
From: Serge C. <ser...@us...> - 2003-08-19 10:04:43
|
Update of /cvsroot/mysql-cocoa/Documentation In directory sc8-pr-cvs1:/tmp/cvs-serv31190 Added Files: ToGetABranch.txt Log Message: Started a big update of the website. Added the latest 2 'new' updates (one for version 2.0, 25 Dec 2002, one for version 2.2.0, yesterday). Still a lot to do (moving most of the updates to an archive file a-la MacGPG, rewriting the about, file, documentation sections). 2003-08-19; Serge Cohen. --- NEW FILE: ToGetABranch.txt --- cvs -d :ext:ser...@cv...:/cvsroot/mysql-cocoa co -r version-2-1 -d SMySQL_v2 SMySQL |
From: Serge C. <ser...@us...> - 2003-08-18 21:24:52
|
Update of /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj In directory sc8-pr-cvs1:/tmp/cvs-serv22622/SMySQL.pbproj Modified Files: cohen.pbxuser project.pbxproj Log Message: Added a README file for the binary distribution (README_BIN). Modified teh Prepare_Distribution script, so that it uses this READM file, and also adds CLI_Test support file in the binary distribution. Also made a tar.gz distribution file for the source distribution. 2003-08-18; Serge Cohen. Index: cohen.pbxuser =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj/cohen.pbxuser,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** cohen.pbxuser 18 Aug 2003 00:38:13 -0000 1.20 --- cohen.pbxuser 18 Aug 2003 21:24:49 -0000 1.21 *************** *** 11,15 **** ); perUserDictionary = { ! PBXPerProjectTemplateStateSaveDate = 82859450; PBXWorkspaceContents = ( { --- 11,15 ---- ); perUserDictionary = { ! PBXPerProjectTemplateStateSaveDate = 82902926; PBXWorkspaceContents = ( { *************** *** 18,26 **** Split0 = { NavContent0 = { ! bookmark = 0D00F8EE04F0565000B276FA; history = ( 0D8AD06504F04D8300C86E30, 0D8AD06604F04D8300C86E30, ! 0D18A9CD04F054880000000A, ); prevStack = ( --- 18,31 ---- Split0 = { NavContent0 = { ! bookmark = 0D079E9404F100D800A8C863; history = ( 0D8AD06504F04D8300C86E30, 0D8AD06604F04D8300C86E30, ! 0D82DD6C04F0FEC100B97554, ! 0D82DD6D04F0FEC100B97554, ! 0D82DD6E04F0FEC100B97554, ! 0D82DD6F04F0FEC100B97554, ! 0D079E9204F100D800A8C863, ! 0D82DD7004F0FEC100B97554, ); prevStack = ( *************** *** 29,37 **** 0D8AD06904F04D8300C86E30, 0D8AD06A04F04D8300C86E30, ); }; NavCount = 1; NavGeometry0 = { ! Frame = "{{0, 0}, {1119, 641}}"; NavBarVisible = YES; }; --- 34,43 ---- 0D8AD06904F04D8300C86E30, 0D8AD06A04F04D8300C86E30, + 0D079E9304F100D800A8C863, ); }; NavCount = 1; NavGeometry0 = { ! Frame = "{{0, 0}, {887, 641}}"; NavBarVisible = YES; }; *************** *** 68,78 **** ContentSize = "{1143, 688}"; LeftSlideOut = { Collapsed = NO; Frame = "{{0, 23}, {1143, 665}}"; Split0 = { Collapsed = NO; ! Frame = "{{24, 0}, {1119, 665}}"; Split0 = { ! Frame = "{{0, 24}, {1119, 641}}"; }; SplitCount = 1; --- 74,86 ---- ContentSize = "{1143, 688}"; LeftSlideOut = { + ActiveTab = 0; + ActiveTabName = PBXGroupTreeModule; Collapsed = NO; Frame = "{{0, 23}, {1143, 665}}"; Split0 = { Collapsed = NO; ! Frame = "{{256, 0}, {887, 665}}"; Split0 = { ! Frame = "{{0, 24}, {887, 641}}"; }; SplitCount = 1; *************** *** 123,130 **** }; Tab3 = { ! BuildMessageFrame = "{{0, 0}, {1121, 104}}"; ! BuildTranscriptFrame = "{{0, 113}, {1121, 228}}"; BuildTranscriptFrameExpanded = YES; ! Frame = "{{0, 0}, {1119, 363}}"; }; Tab4 = { --- 131,138 ---- }; Tab3 = { ! BuildMessageFrame = "{{0, 0}, {889, 104}}"; ! BuildTranscriptFrame = "{{0, 113}, {889, 228}}"; BuildTranscriptFrameExpanded = YES; ! Frame = "{{0, 0}, {887, 363}}"; }; Tab4 = { *************** *** 138,145 **** Frame = "{{0, 0}, {232, 665}}"; GroupTreeTableConfiguration = ( TargetStatusColumn, 18, MainColumn, ! 199, ); }; --- 146,155 ---- Frame = "{{0, 0}, {232, 665}}"; GroupTreeTableConfiguration = ( + SCMStatusColumn, + 22, TargetStatusColumn, 18, MainColumn, ! 177, ); }; *************** *** 192,201 **** }, ); ! PBXWorkspaceStateSaveDate = 82859450; }; perUserProjectItems = { ! 0D00F8EE04F0565000B276FA = 0D00F8EE04F0565000B276FA; ! 0D18A9CD04F054880000000A = 0D18A9CD04F054880000000A; 0D6DC6FD04F03FE40025C233 = 0D6DC6FD04F03FE40025C233; 0D8AD06504F04D8300C86E30 = 0D8AD06504F04D8300C86E30; 0D8AD06604F04D8300C86E30 = 0D8AD06604F04D8300C86E30; --- 202,217 ---- }, ); ! PBXWorkspaceStateSaveDate = 82902926; }; perUserProjectItems = { ! 0D079E9204F100D800A8C863 = 0D079E9204F100D800A8C863; ! 0D079E9304F100D800A8C863 = 0D079E9304F100D800A8C863; ! 0D079E9404F100D800A8C863 = 0D079E9404F100D800A8C863; 0D6DC6FD04F03FE40025C233 = 0D6DC6FD04F03FE40025C233; + 0D82DD6C04F0FEC100B97554 = 0D82DD6C04F0FEC100B97554; + 0D82DD6D04F0FEC100B97554 = 0D82DD6D04F0FEC100B97554; + 0D82DD6E04F0FEC100B97554 = 0D82DD6E04F0FEC100B97554; + 0D82DD6F04F0FEC100B97554 = 0D82DD6F04F0FEC100B97554; + 0D82DD7004F0FEC100B97554 = 0D82DD7004F0FEC100B97554; 0D8AD06504F04D8300C86E30 = 0D8AD06504F04D8300C86E30; 0D8AD06604F04D8300C86E30 = 0D8AD06604F04D8300C86E30; *************** *** 212,220 **** activeExec = 0; }; ! 0D00F8EE04F0565000B276FA = { isa = PBXTargetBookmark; trg = 0DEFA05704F0318B00A68F01; uiCtxt = { ! TOCViewDetailVisibleRect = "{{0, 0}, {771, 233}}"; TOCViewExpandedItems = ( "com.apple.target-editor-pane.settings", --- 228,236 ---- activeExec = 0; }; ! 0D079E9204F100D800A8C863 = { isa = PBXTargetBookmark; trg = 0DEFA05704F0318B00A68F01; uiCtxt = { ! TOCViewDetailVisibleRect = "{{0, 0}, {607, 224}}"; TOCViewExpandedItems = ( "com.apple.target-editor-pane.settings", *************** *** 224,228 **** "com.apple.target-editor-pane.buildphases", ); ! TOCViewMasterVisibleRect = "{{0, 0}, {309, 587}}"; TOCViewSelectedItems = ( PBXTargetSummarySettingsModule, --- 240,244 ---- "com.apple.target-editor-pane.buildphases", ); ! TOCViewMasterVisibleRect = "{{0, 0}, {241, 224}}"; TOCViewSelectedItems = ( PBXTargetSummarySettingsModule, *************** *** 230,240 **** }; }; ! 0D18A9CD04F054880000000A = { isa = PBXTargetBookmark; trg = 0DEFA05704F0318B00A68F01; }; 0D6DC6FD04F03FE40025C233 = { isa = PBXTargetBookmark; trg = 0DEFA05704F0318B00A68F01; }; 0D8AD06504F04D8300C86E30 = { --- 246,330 ---- }; }; ! 0D079E9304F100D800A8C863 = { isa = PBXTargetBookmark; trg = 0DEFA05704F0318B00A68F01; + uiCtxt = { + TOCViewDetailVisibleRect = "{{0, 0}, {607, 224}}"; + TOCViewExpandedItems = ( + "com.apple.target-editor-pane.settings", + "com.apple.target-editor-pane.settings.simple", + "com.apple.target-editor-pane.info-plist", + "com.apple.target-editor-pane.info-plist.simple", + "com.apple.target-editor-pane.buildphases", + ); + TOCViewMasterVisibleRect = "{{0, 0}, {241, 224}}"; + TOCViewSelectedItems = ( + PBXTargetSummarySettingsModule, + ); + }; + }; + 0D079E9404F100D800A8C863 = { + fRef = 0D82DD6B04F0D92100B97554; + isa = PBXTextBookmark; + name = "README_BIN: 3"; + rLen = 0; + rLoc = 82; + rType = 0; + vrLen = 2816; + vrLoc = 0; }; 0D6DC6FD04F03FE40025C233 = { isa = PBXTargetBookmark; trg = 0DEFA05704F0318B00A68F01; + }; + 0D82DD6C04F0FEC100B97554 = { + fRef = 0D82DD6A04F0D92100B97554; + isa = PBXTextBookmark; + name = "gpl.txt: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 2193; + vrLoc = 15816; + }; + 0D82DD6D04F0FEC100B97554 = { + fRef = 0D82DD6904F0D92100B97554; + isa = PBXTextBookmark; + name = "gpl.html: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1039; + vrLoc = 0; + }; + 0D82DD6E04F0FEC100B97554 = { + fRef = 0DCEFD9904EEC2B800F30895; + isa = PBXTextBookmark; + name = "README: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 2786; + vrLoc = 0; + }; + 0D82DD6F04F0FEC100B97554 = { + fRef = 0DCEFA2404EEAEF500F30895; + isa = PBXTextBookmark; + name = "README.txt: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 2013; + vrLoc = 0; + }; + 0D82DD7004F0FEC100B97554 = { + fRef = 0D82DD6B04F0D92100B97554; + isa = PBXTextBookmark; + name = "README_BIN: 3"; + rLen = 0; + rLoc = 82; + rType = 0; + vrLen = 2192; + vrLoc = 5589; }; 0D8AD06504F04D8300C86E30 = { Index: project.pbxproj =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj/project.pbxproj,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** project.pbxproj 18 Aug 2003 00:38:14 -0000 1.21 --- project.pbxproj 18 Aug 2003 21:24:49 -0000 1.22 *************** *** 88,92 **** --- 88,95 ---- 0867D691FE84028FC02AAC07 = { children = ( + 0D82DD6904F0D92100B97554, + 0D82DD6A04F0D92100B97554, 0DCEFD9904EEC2B800F30895, + 0D82DD6B04F0D92100B97554, 0DCEFD9A04EEC2B800F30895, 0DCEFD9B04EEC2B800F30895, *************** *** 359,362 **** --- 362,383 ---- target = 0DCFFE7404EE9B4400AD80EC; }; + 0D82DD6904F0D92100B97554 = { + fileEncoding = 4; + isa = PBXFileReference; + path = gpl.html; + refType = 4; + }; + 0D82DD6A04F0D92100B97554 = { + fileEncoding = 4; + isa = PBXFileReference; + path = gpl.txt; + refType = 4; + }; + 0D82DD6B04F0D92100B97554 = { + fileEncoding = 4; + isa = PBXFileReference; + path = README_BIN; + refType = 4; + }; 0DA7207904EE8A99002E9126 = { buildActionMask = 2147483647; *************** *** 1464,1468 **** runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; ! shellScript = "MKDIRS=\"mkdir -p\"\nCP=\"cp -r\"\nWORK_DIR=\"$TARGET_BUILD_DIR/Distributions\"\n\nBASE_DIST_NAME=\"SMySQL\"\nVERSION_DIST=\"2.2.0\"\n\nSOURCE_FILES=\"MCPConnection.h MCPConnection.m MCPFastQueries.h MCPFastQueries.m MCPNull.h MCPNull.m MCPResult.h MCPResult.m MCPResultPlus.h MCPResultPlus.m SMySQL.h SMySQLConstants.h SMySQL_Prefix.h README TO_DO TO_INSTALL gpl.txt gpl.html mysql_bins CLI_Test SMySQL.pbproj\"\n\nBIN_FILES=\"SMySQL.framework SMySQL_static.framework SMySQL_bundled.framework CLI_Test.command\"\n\nrm -rf \"$WORK_DIR\"\n$MKDIRS \"$WORK_DIR\"\ncd \"$WORK_DIR\"\n\n#cat - > foo.txt <<EOF\n#This Foo Bar saying Hello World...\n#EOF\n\n# Preparing the source distribution:\nSOURCE_DIST_NAME=\"${BASE_DIST_NAME}_src_${VERSION_DIST}\"\n# Create a writable DMG file :\nhdiutil create -megabytes 5 Sources_Temp.dmg -layout NONE\n# Mount it just to be able to format it (and format in HFS+)\nDEV_SOURCES=`hdid -nomount Sources_Temp.dmg`\nnewfs_hfs -v \"$SOURCE_DIST_NAME\" $DEV_SOURCES\nhdiutil eject $DEV_SOURCES\n# Mount in writable way:\nhdid Sources_Temp.dmg > mount_source.log\nDEV_SOURCES=`awk '{print $1}' mount_source.log`\nVOL_SOURCES=`awk '{print $2}' mount_source.log`\n# Copy the sources to the source volume...\ncd \"$SRCROOT\"\n$CP $SOURCE_FILES $VOL_SOURCES\nfind $VOL_SOURCES -name 'CVS' -exec rm -rf {} \\;\ncd \"$WORK_DIR\"\n# Copying is done, we can eject and compress the image:\nhdiutil eject $DEV_SOURCES\nhdiutil convert -format UDZO Sources_Temp.dmg -o ${SOURCE_DIST_NAME}.dmg\n\n# Preparing the binary distribution:\nBINS_DIST_NAME=\"${BASE_DIST_NAME}_bin_${VERSION_DIST}\"\n# Create a writable DMG file :\nhdiutil create -megabytes 5 Bins_Temp.dmg -layout NONE\n# Mount it just to be able to format it (and format in HFS+)\nDEV_BINS=`hdid -nomount Bins_Temp.dmg`\nnewfs_hfs -v \"$BINS_DIST_NAME\" $DEV_BINS\nhdiutil eject $DEV_BINS\n# Mount in writable way:\nhdid Bins_Temp.dmg > mount_bin.log\nDEV_BINS=`awk '{print $1}' mount_bin.log`\nVOL_BINS=`awk '{print $2}' mount_bin.log`\n# Copy the sources to the source volume...\ncd \"$TARGET_BUILD_DIR\"\n$CP $BIN_FILES $VOL_BINS\n$CP \"${SRCROOT}/README\" ${VOL_BINS}/README \ncd \"$WORK_DIR\"\n# Copying is done, we can eject and compress the image:\nhdiutil eject $DEV_BINS\nhdiutil convert -format UDZO Bins_Temp.dmg -o ${BINS_DIST_NAME}.dmg\n\n\n# Clean_up:\nrm -f Sources_Temp.dmg\nrm -f mount_source.log\nrm -f Bins_Temp.dmg\nrm -f mount_bin.log\n\necho Everything will be in : $WORK_DIR\n\n\n"; }; //0D0 --- 1485,1489 ---- runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; ! shellScript = "MKDIRS=\"mkdir -p\"\nCP=\"cp -r\"\nWORK_DIR=\"$TARGET_BUILD_DIR/Distributions\"\n\nBASE_DIST_NAME=\"SMySQL\"\nVERSION_DIST=\"2.2.0\"\n\nSOURCE_FILES=\"MCPConnection.h MCPConnection.m MCPFastQueries.h MCPFastQueries.m MCPNull.h MCPNull.m MCPResult.h MCPResult.m MCPResultPlus.h MCPResultPlus.m SMySQL.h SMySQLConstants.h SMySQL_Prefix.h README TO_DO TO_INSTALL gpl.txt gpl.html mysql_bins CLI_Test SMySQL.pbproj\"\n\nBIN_FILES=\"SMySQL.framework SMySQL_static.framework SMySQL_bundled.framework CLI_Test.command\"\n\nrm -rf \"$WORK_DIR\"\n$MKDIRS \"$WORK_DIR\"\ncd \"$WORK_DIR\"\n\n#cat - > foo.txt <<EOF\n#This Foo Bar saying Hello World...\n#EOF\n\n# Preparing the source distribution:\nSOURCE_DIST_NAME=\"${BASE_DIST_NAME}_src_${VERSION_DIST}\"\n# Create a writable DMG file :\nhdiutil create -megabytes 5 Sources_Temp.dmg -layout NONE\n# Mount it just to be able to format it (and format in HFS+)\nDEV_SOURCES=`hdid -nomount Sources_Temp.dmg`\nnewfs_hfs -v \"$SOURCE_DIST_NAME\" $DEV_SOURCES\nhdiutil eject $DEV_SOURCES\n# Mount in writable way:\nhdid Sources_Temp.dmg > mount_source.log\nDEV_SOURCES=`awk '{print $1}' mount_source.log`\nVOL_SOURCES=`awk '{print $2}' mount_source.log`\n# Copy the sources to the source volume...\ncd \"$SRCROOT\"\n$CP $SOURCE_FILES $VOL_SOURCES\nfind $VOL_SOURCES -name 'CVS' -exec rm -rf {} \\;\n# Make a Tar/gz version of the distribution...\ncd $VOL_SOURCES\ncd ..\ngnutar -cvzf \"${WORK_DIR}/${SOURCE_DIST_NAME}.tgz\" ${SOURCE_DIST_NAME}\ncd \"$WORK_DIR\"\n# Copying is done, we can eject and compress the image:\nhdiutil eject $DEV_SOURCES\nhdiutil convert -format UDZO Sources_Temp.dmg -o ${SOURCE_DIST_NAME}.dmg\n\n# Preparing the binary distribution:\nBINS_DIST_NAME=\"${BASE_DIST_NAME}_bin_${VERSION_DIST}\"\n# Create a writable DMG file :\nhdiutil create -megabytes 5 Bins_Temp.dmg -layout NONE\n# Mount it just to be able to format it (and format in HFS+)\nDEV_BINS=`hdid -nomount Bins_Temp.dmg`\nnewfs_hfs -v \"$BINS_DIST_NAME\" $DEV_BINS\nhdiutil eject $DEV_BINS\n# Mount in writable way:\nhdid Bins_Temp.dmg > mount_bin.log\nDEV_BINS=`awk '{print $1}' mount_bin.log`\nVOL_BINS=`awk '{print $2}' mount_bin.log`\n# Copy the sources to the source volume...\ncd \"$TARGET_BUILD_DIR\"\n$CP $BIN_FILES $VOL_BINS\n$CP ${SRCROOT}/README_BIN ${VOL_BINS}/README \n$CP \"${SRCROOT}/CLI_Test/README.txt\" ${VOL_BINS}/CLI_Test_README\n$CP \"${SRCROOT}/CLI_Test/Make_DB_and_table.mysql\" ${VOL_BINS}/\ncd \"$WORK_DIR\"\n# Copying is done, we can eject and compress the image:\nhdiutil eject $DEV_BINS\nhdiutil convert -format UDZO Bins_Temp.dmg -o ${BINS_DIST_NAME}.dmg\n\n\n# Clean_up:\nrm -f Sources_Temp.dmg\nrm -f mount_source.log\nrm -f Bins_Temp.dmg\nrm -f mount_bin.log\n\necho Everything will be in : $WORK_DIR\n"; }; //0D0 |
From: Serge C. <ser...@us...> - 2003-08-18 21:24:52
|
Update of /cvsroot/mysql-cocoa/SMySQL In directory sc8-pr-cvs1:/tmp/cvs-serv22622 Added Files: README_BIN Log Message: Added a README file for the binary distribution (README_BIN). Modified teh Prepare_Distribution script, so that it uses this READM file, and also adds CLI_Test support file in the binary distribution. Also made a tar.gz distribution file for the source distribution. 2003-08-18; Serge Cohen. --- NEW FILE: README_BIN --- READ ME file for SMySQL, from MySQL Cocoa project. For the BINARIES distribution. ++++++++++++++++++++++++++++++++ + Aim of this Framework: ++++++++++++++++++++++++++++++++ This framework is aimed at programers which want to connect to a MySQL database from a application developed with Cocoa (and maybe GNUStep, although I've not tried myself). The framework is based on the C API of MySQL and hence uses (or include) the libmysqlclient library coming from MySQL. Objects from this framework (namely MCPConnection and MCPResult) belongs to the Model layer and uses anly the Foundation API. The development is done with Project Builder (the IDE from Apple -previously NeXT-), and no other environment is supported (yet !! if you want to port it to another env. I'll be glad to provide you with all the information I know which can help you). ++++++++++++++++++++++++++++++++ + Flavours: ++++++++++++++++++++++++++++++++ The SMySQL framework comes in 3 flavours, that's because: 1. Frameworks can have different policies to be installed on a system and used by an App. 2. The framework relies on the code from the libmysqlclient library to work. Let's first adress these two points, and then the description of the flavoured should much clearer. 1. Frameworks location (Indeed I would suggest you read Apple doc about OS X...): If a framework is used by many applications, it's better to have a central repository for him. This repository exist, it's the folder Library/Frameworks (of any of the domains: System, Network, User ...). Any application which need one of these framework just declare the name of the framework, and the dynamic linker will look for it in all these repository (in a given order which you'll find in Apple doc). -> Lets call this kind of framework a 'System-wide framework' In the mean time, an application programmer might want to wrap some of his application capabilities in a framework (to be able to use it in another app easily). In this case it's better if the framework does not take place (and namespace) in the central repository, even more it's better if you don't have to ask the user to install a framework to be able to run the app. In this aim you can embed the framework in the application bundle (in the "Contents/Frameworks/" folder of the bundle). Then you should set precisely the path to reach the framework (at compile time). -> Lets call this kind of framework a 'Bundled framework' 2. The form libmysqlclient used: The same kind of question arise about libmysqlclient, it exists in two forms: static library (archive), or dynamic lib (shared object). The dynamic lib is much better to use if the user had it setted personnaly (give coherence to all the applications using the client side of mysql) BUT it might forces the user to install one more thing. In the case the application might be installed by users who doe not want to bother with mysql installation, it's much easier for the user to have the library staticly linked (once for all by the developer) in the framework. -- Now the 3 flavours of the framework: 1. Target : SMySQL (System-wide framework using dynamic library) The framework is to be installed in one of the central repository. And because you're not afraid of this knid of installs, this one relies on the dynamic version of libmysqlclient. One of the big PLUS of this install is that you can use the framework even in "Foundation" type application (command line interface, launched in terminal). 2. Target : SMySQL_static (System-wide framework using static library) Kind of a mix target. The framework is made to be installed in one of the central repository, but is not relying on the libmysqlclient dynamic library (instead it contains the static version of the library). The advantages over the SMySQL target is that it does not requires that you install the libmysqlclient.dylib, though you still can use this framework with "Foundation" tools. 3. Target : SMySQL_bundled (bundled framework using static library) The framework is made to be embeded in the application bundle and DOES NOT rely on any external libraries (except the one provided as standard with Mac OS X). In this target the libmysqlclient is staticly linked in the framework. This is the target you should use if you are developing a GUI application (Cocoa Bundle application, or Cocoa Application in the Project Builder notations). NB: Only 1. and 2. can be used from a "Foundation" application (like CLI_Test, which BTW has its own read me). For GUI application the method recommended is 3. (following Apple recommendations). ++++++++++++++++++++++++++++++++ + Installation: ++++++++++++++++++++++++++++++++ PLEASE, read the preceding section (Flavours) if you wounder which framework you want to use for your own application. If you want to install flavour 1 (target SMySQL), you have to have a working version of libmysqlclient together with the corresponding header files. For flavour 1: (YOU NEED YOUR OWN VERSION OF libmysqlclient.dylib, which HAS TO BE /usr/local/lib/mysql/libmysqlclient.11.dylib, otherwise start from the sources). - Move the SMySQL.framework directory to one of the Library/Frameworks folder (in / ~/ ...). - You can then use the framework. (then you can try building and running CLI_Test target, for that read the CLI_Test_README file). For flavour 2: - Move the SMySQL_static.framework directory to one of the Library/Frameworks folder (in / ~/ ...). - You can then use the framework. (then you can try building and running CLI_Test target, for that read the CLI_Test_README file). For flavour 3: - Move the SMySQL_static.framework directory anywhere you want (so that you can unmount the Disk Image). - You can then use the framework: (instructions on how to use bundled framework are in the file:///Developer/Documentation/DeveloperTools/ProjectBuilder/ProjectBuilder.help/Contents/Resources/English.lproj/Frameworks/_Embedding__Application.html) Copy the Framework Into the Application In the applicationÕs target, you need to add a copy-files build phase that copies the framework into the application. Add the framework to the applicationÕs target. See ÒAdding Files and FrameworksÓ. If the applicationÕs target and frameworkÕs target are in the same project, you should also make the applicationÕs target dependent on the frameworkÕs target. See ÒManaging Target DependenciesÓ. In the project window, click the Targets tab and open the application target. Click the last build phase under Build Phases, and choose Project > New Build Phase > New Copy Files Build Phase. Choose Frameworks from the Where pop-up menu, select the ÒCopy only when installingÓ option, and drag the framework to the Files field. You can find the framework in the Products group in the projectÕs Files list. Note 1: You can browse this document also in going in ProjectBuilder, Menu Help->Project Builder Help, then choose ÒCreatingÊFrameworksÊandÊLibrariesÓ -> ÒEmbedding a Framework in an ApplicationÓ Note 2: The SMySQL_bundled target is already taking care of the first part of the work described in the documentation (you DO NOT have to take care of the paragraph ÒPrepare the Framework to be EmbeddedÓ, it is already prepared for you). In all the three cases the html doc (of the framework) is installed in the directory: SMySQL.framework/Resources/English.lproj/Documentation/ (or SMySQL_static.framework/Resources/English.lproj/Documentation/, or SMySQL_bundle.framework/Resources/English.lproj/Documentation/). ++++++++++++++++++++++++++++++++ + Use: ++++++++++++++++++++++++++++++++ The CLI_Test application can be a good example to see how to use the framework, you might want ot get the source of this application. More to come.... 2003-08-17; Serge Cohen. |
From: Serge C. <ser...@us...> - 2003-08-18 00:47:22
|
Update of /cvsroot/mysql-cocoa/SMySQL/mysql_bins In directory sc8-pr-cvs1:/tmp/cvs-serv18417/mysql_bins Modified Files: libmysqlclient.a Log Message: Updated the README file (now correspond to the new project architecture). Added a target to the project to generate the Disk Image for the sources and binraies releases. Still have to write a README_BINARY file. Emptied TO_INSTALL file... maybe I'll want to write something in it later (for the moment the info is in README!!!). 2003-08-18; Serge Cohen. Index: libmysqlclient.a =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/mysql_bins/libmysqlclient.a,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvstKRvHz and /tmp/cvsG9MI3Z differ |
From: Serge C. <ser...@us...> - 2003-08-18 00:47:11
|
Update of /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj In directory sc8-pr-cvs1:/tmp/cvs-serv18417/SMySQL.pbproj Modified Files: cohen.pbxuser project.pbxproj Log Message: Updated the README file (now correspond to the new project architecture). Added a target to the project to generate the Disk Image for the sources and binraies releases. Still have to write a README_BINARY file. Emptied TO_INSTALL file... maybe I'll want to write something in it later (for the moment the info is in README!!!). 2003-08-18; Serge Cohen. Index: cohen.pbxuser =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj/cohen.pbxuser,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** cohen.pbxuser 16 Aug 2003 21:10:00 -0000 1.19 --- cohen.pbxuser 18 Aug 2003 00:38:13 -0000 1.20 *************** *** 2,8 **** { 0867D690FE84028FC02AAC07 = { ! activeBuildStyle = 014CEA440018CDF011CA2923; activeExecutable = 0DCFFE7604EE9B4400AD80EC; ! activeTarget = 0DA7207E04EE8A99002E9126; addToTargets = ( ); --- 2,8 ---- { 0867D690FE84028FC02AAC07 = { [...2171 lines suppressed...] ! 0DCFFEDE04EEA7FE00AD80EC = { ! isa = PBXFileReference; ! name = i_How_a_Prod_JBDCDGB.html; ! path = /Developer/Documentation/DeveloperTools/ProjectBuilder/ProjectBuilder.help/Contents/Resources/English.lproj/InsidePB/i_How_a_Prod_JBDCDGB.html; ! refType = 0; ! }; ! 0DCFFEDF04EEA7FE00AD80EC = { ! isa = PBXFileReference; ! name = index.html; ! path = /Developer/Documentation/DeveloperTools/ProjectBuilder/ProjectBuilder.help/Contents/Resources/English.lproj/Frameworks/index.html; ! refType = 0; }; } --- 290,295 ---- ); }; ! 0DEFA05704F0318B00A68F01 = { ! activeExec = 0; }; } Index: project.pbxproj =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj/project.pbxproj,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** project.pbxproj 16 Aug 2003 21:06:33 -0000 1.20 --- project.pbxproj 18 Aug 2003 00:38:14 -0000 1.21 *************** *** 46,49 **** --- 46,50 ---- 0DA7208604EE8C3F002E9126, 0DCFFE7504EE9B4400AD80EC, + 0DEFA05804F0318B00A68F01, ); isa = PBXGroup; *************** *** 82,85 **** --- 83,87 ---- 0DA7208504EE8C3F002E9126, 0DCFFE7404EE9B4400AD80EC, + 0DEFA05704F0318B00A68F01, ); }; *************** *** 313,317 **** runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; ! shellScript = "MKDIRS=\"mkdir -p\"\nAUTODOC=/usr/local/bin/autodoc\nAUTODOC_FLAGS=\"-copydocs -timestamp -allclasses\"\nAUTODOC_FORMAT=html\nAUTODOC_LANGUAGE=English\nexport AD_COPYRIGHT=\"MySQL Cocoa Project\"\n\n# If autodoc is not installed, we quit without any error\ntest -x $AUTODOC || exit 0\n\nPUBLIC_DOC_INSTALLDIR=\"$SYMROOT/$PRODUCT_NAME.framework/Resources/$AUTODOC_LANGUAGE.lproj/Documentation\"\n\n# We need to write down file names here\nAUTODOC_FILES=\"MCPResultPlus.h MCPFastQueries.h MCPConnection.h MCPResult.h MCPNull.h\"\nAUTODOC_DOCDIR=\"$PUBLIC_DOC_INSTALLDIR\"\n\nOTHER_AUTODOC_FLAGS=\"-typedirs -allclasses -combine -force -nosingles\"\n\nALL_AUTODOC_FLAGS=\"$AUTODOC_FLAGS $OTHER_AUTODOC_FLAGS\"\n\n$MKDIRS $PUBLIC_DOC_INSTALLDIR\n$AUTODOC $ALL_AUTODOC_FLAGS -format $AUTODOC_FORMAT -dest $AUTODOC_DOCDIR $AUTODOC_FILES\n"; }; 0D2AA83C04EED06400349A90 = { --- 315,319 ---- runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; ! shellScript = "MKDIRS=\"mkdir -p\"\nAUTODOC=/usr/local/bin/autodoc\nAUTODOC_FLAGS=\"-copydocs -timestamp -allclasses\"\nAUTODOC_FORMAT=html\nAUTODOC_LANGUAGE=English\nexport AD_COPYRIGHT=\"Serge Cohen\"\n\n# If autodoc is not installed, we quit without any error\ntest -x $AUTODOC || exit 0\n\nPUBLIC_DOC_INSTALLDIR=\"$SYMROOT/$PRODUCT_NAME.framework/Resources/$AUTODOC_LANGUAGE.lproj/Documentation\"\n\n# We need to write down file names here\nAUTODOC_FILES=\"MCPResultPlus.h MCPFastQueries.h MCPConnection.h MCPResult.h MCPNull.h\"\nAUTODOC_DOCDIR=\"$PUBLIC_DOC_INSTALLDIR\"\n\nOTHER_AUTODOC_FLAGS=\"-typedirs -allclasses -combine -force -nosingles\"\n\nALL_AUTODOC_FLAGS=\"$AUTODOC_FLAGS $OTHER_AUTODOC_FLAGS\"\n\n$MKDIRS $PUBLIC_DOC_INSTALLDIR\n$AUTODOC $ALL_AUTODOC_FLAGS -format $AUTODOC_FORMAT -dest $AUTODOC_DOCDIR $AUTODOC_FILES\n"; }; 0D2AA83C04EED06400349A90 = { *************** *** 326,330 **** runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; ! shellScript = "MKDIRS=\"mkdir -p\"\nAUTODOC=/usr/local/bin/autodoc\nAUTODOC_FLAGS=\"-copydocs -timestamp -allclasses\"\nAUTODOC_FORMAT=html\nAUTODOC_LANGUAGE=English\nexport AD_COPYRIGHT=\"MySQL Cocoa Project\"\n\n# If autodoc is not installed, we quit without any error\ntest -x $AUTODOC || exit 0\n\nPUBLIC_DOC_INSTALLDIR=\"$SYMROOT/$PRODUCT_NAME.framework/Resources/$AUTODOC_LANGUAGE.lproj/Documentation\"\n\n# We need to write down file names here\nAUTODOC_FILES=\"MCPResultPlus.h MCPFastQueries.h MCPConnection.h MCPResult.h MCPNull.h\"\nAUTODOC_DOCDIR=\"$PUBLIC_DOC_INSTALLDIR\"\n\nOTHER_AUTODOC_FLAGS=\"-typedirs -allclasses -combine -force -nosingles\"\n\nALL_AUTODOC_FLAGS=\"$AUTODOC_FLAGS $OTHER_AUTODOC_FLAGS\"\n\n$MKDIRS $PUBLIC_DOC_INSTALLDIR\n$AUTODOC $ALL_AUTODOC_FLAGS -format $AUTODOC_FORMAT -dest $AUTODOC_DOCDIR $AUTODOC_FILES\n"; }; 0D2AA83D04EED07700349A90 = { --- 328,332 ---- runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; ! shellScript = "MKDIRS=\"mkdir -p\"\nAUTODOC=/usr/local/bin/autodoc\nAUTODOC_FLAGS=\"-copydocs -timestamp -allclasses\"\nAUTODOC_FORMAT=html\nAUTODOC_LANGUAGE=English\nexport AD_COPYRIGHT=\"Serge Cohen\"\n\n# If autodoc is not installed, we quit without any error\ntest -x $AUTODOC || exit 0\n\nPUBLIC_DOC_INSTALLDIR=\"$SYMROOT/$PRODUCT_NAME.framework/Resources/$AUTODOC_LANGUAGE.lproj/Documentation\"\n\n# We need to write down file names here\nAUTODOC_FILES=\"MCPResultPlus.h MCPFastQueries.h MCPConnection.h MCPResult.h MCPNull.h\"\nAUTODOC_DOCDIR=\"$PUBLIC_DOC_INSTALLDIR\"\n\nOTHER_AUTODOC_FLAGS=\"-typedirs -allclasses -combine -force -nosingles\"\n\nALL_AUTODOC_FLAGS=\"$AUTODOC_FLAGS $OTHER_AUTODOC_FLAGS\"\n\n$MKDIRS $PUBLIC_DOC_INSTALLDIR\n$AUTODOC $ALL_AUTODOC_FLAGS -format $AUTODOC_FORMAT -dest $AUTODOC_DOCDIR $AUTODOC_FILES\n"; }; 0D2AA83D04EED07700349A90 = { *************** *** 339,343 **** runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; ! shellScript = "MKDIRS=\"mkdir -p\"\nAUTODOC=/usr/local/bin/autodoc\nAUTODOC_FLAGS=\"-copydocs -timestamp -allclasses\"\nAUTODOC_FORMAT=html\nAUTODOC_LANGUAGE=English\nexport AD_COPYRIGHT=\"MySQL Cocoa Project\"\n\n# If autodoc is not installed, we quit without any error\ntest -x $AUTODOC || exit 0\n\nPUBLIC_DOC_INSTALLDIR=\"$SYMROOT/$PRODUCT_NAME.framework/Resources/$AUTODOC_LANGUAGE.lproj/Documentation\"\n\n# We need to write down file names here\nAUTODOC_FILES=\"MCPResultPlus.h MCPFastQueries.h MCPConnection.h MCPResult.h MCPNull.h\"\nAUTODOC_DOCDIR=\"$PUBLIC_DOC_INSTALLDIR\"\n\nOTHER_AUTODOC_FLAGS=\"-typedirs -allclasses -combine -force -nosingles\"\n\nALL_AUTODOC_FLAGS=\"$AUTODOC_FLAGS $OTHER_AUTODOC_FLAGS\"\n\n$MKDIRS $PUBLIC_DOC_INSTALLDIR\n$AUTODOC $ALL_AUTODOC_FLAGS -format $AUTODOC_FORMAT -dest $AUTODOC_DOCDIR $AUTODOC_FILES\n"; }; 0DA7207904EE8A99002E9126 = { --- 341,361 ---- runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; ! shellScript = "MKDIRS=\"mkdir -p\"\nAUTODOC=/usr/local/bin/autodoc\nAUTODOC_FLAGS=\"-copydocs -timestamp -allclasses\"\nAUTODOC_FORMAT=html\nAUTODOC_LANGUAGE=English\nexport AD_COPYRIGHT=\"Serge Cohen\"\n\n# If autodoc is not installed, we quit without any error\ntest -x $AUTODOC || exit 0\n\nPUBLIC_DOC_INSTALLDIR=\"$SYMROOT/$PRODUCT_NAME.framework/Resources/$AUTODOC_LANGUAGE.lproj/Documentation\"\n\n# We need to write down file names here\nAUTODOC_FILES=\"MCPResultPlus.h MCPFastQueries.h MCPConnection.h MCPResult.h MCPNull.h\"\nAUTODOC_DOCDIR=\"$PUBLIC_DOC_INSTALLDIR\"\n\nOTHER_AUTODOC_FLAGS=\"-typedirs -allclasses -combine -force -nosingles\"\n\nALL_AUTODOC_FLAGS=\"$AUTODOC_FLAGS $OTHER_AUTODOC_FLAGS\"\n\n$MKDIRS $PUBLIC_DOC_INSTALLDIR\n$AUTODOC $ALL_AUTODOC_FLAGS -format $AUTODOC_FORMAT -dest $AUTODOC_DOCDIR $AUTODOC_FILES\n"; ! }; ! 0D6DC6F704F03DE00025C233 = { ! isa = PBXTargetDependency; ! target = 0867D69CFE84028FC02AAC07; ! }; ! 0D6DC6F804F03DE20025C233 = { ! isa = PBXTargetDependency; ! target = 0DA7207E04EE8A99002E9126; ! }; ! 0D6DC6F904F03DE40025C233 = { ! isa = PBXTargetDependency; ! target = 0DA7208504EE8C3F002E9126; ! }; ! 0D6DC6FA04F03DE60025C233 = { ! isa = PBXTargetDependency; ! target = 0DCFFE7404EE9B4400AD80EC; }; 0DA7207904EE8A99002E9126 = { *************** *** 1306,1310 **** OTHER_CFLAGS = "-faltivec -fno-coalesce"; OTHER_REZFLAGS = ""; ! PRODUCT_NAME = CLI_Test; PROFILING_CODE = YES; REZ_EXECUTABLE = YES; --- 1324,1328 ---- OTHER_CFLAGS = "-faltivec -fno-coalesce"; OTHER_REZFLAGS = ""; ! PRODUCT_NAME = CLI_Test.command; PROFILING_CODE = YES; REZ_EXECUTABLE = YES; *************** *** 1323,1327 **** 0DCFFE7504EE9B4400AD80EC = { isa = PBXExecutableFileReference; ! path = CLI_Test; refType = 3; }; --- 1341,1345 ---- 0DCFFE7504EE9B4400AD80EC = { isa = PBXExecutableFileReference; ! path = CLI_Test.command; refType = 3; }; *************** *** 1335,1338 **** --- 1353,1468 ---- isa = PBXTargetDependency; target = 0DA7207E04EE8A99002E9126; + }; + 0DEFA05204F0318B00A68F01 = { + buildActionMask = 2147483647; + files = ( + ); + isa = PBXHeadersBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + 0DEFA05304F0318B00A68F01 = { + buildActionMask = 2147483647; + files = ( + ); + isa = PBXResourcesBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + 0DEFA05404F0318B00A68F01 = { + buildActionMask = 2147483647; + files = ( + ); + isa = PBXSourcesBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + 0DEFA05504F0318B00A68F01 = { + buildActionMask = 2147483647; + files = ( + ); + isa = PBXFrameworksBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + 0DEFA05604F0318B00A68F01 = { + buildActionMask = 2147483647; + files = ( + ); + isa = PBXRezBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + 0DEFA05704F0318B00A68F01 = { + buildPhases = ( + 0DEFA05904F0336400A68F01, + 0DEFA05204F0318B00A68F01, + 0DEFA05304F0318B00A68F01, + 0DEFA05404F0318B00A68F01, + 0DEFA05504F0318B00A68F01, + 0DEFA05604F0318B00A68F01, + ); + buildSettings = { + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = Prepare_Distributions; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas"; + WRAPPER_EXTENSION = bundle; + }; + dependencies = ( + 0D6DC6F704F03DE00025C233, + 0D6DC6F804F03DE20025C233, + 0D6DC6F904F03DE40025C233, + 0D6DC6FA04F03DE60025C233, + ); + isa = PBXBundleTarget; + name = Prepare_Distributions; + productInstallPath = "$(USER_LIBRARY_DIR)/Bundles"; + productName = Prepare_Distributions; + productReference = 0DEFA05804F0318B00A68F01; + productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> + <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"> + <plist version=\"1.0\"> + <dict> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleExecutable</key> + <string></string> + <key>CFBundleGetInfoString</key> + <string></string> + <key>CFBundleIconFile</key> + <string></string> + <key>CFBundleIdentifier</key> + <string></string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string></string> + <key>CFBundlePackageType</key> + <string>BNDL</string> + <key>CFBundleShortVersionString</key> + <string></string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>0.0.1d1</string> + </dict> + </plist> + "; + }; + 0DEFA05804F0318B00A68F01 = { + isa = PBXBundleReference; + path = Prepare_Distributions.bundle; + refType = 3; + }; + 0DEFA05904F0336400A68F01 = { + buildActionMask = 2147483647; + files = ( + ); + generatedFileNames = ( + ); + isa = PBXShellScriptBuildPhase; + neededFileNames = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "MKDIRS=\"mkdir -p\"\nCP=\"cp -r\"\nWORK_DIR=\"$TARGET_BUILD_DIR/Distributions\"\n\nBASE_DIST_NAME=\"SMySQL\"\nVERSION_DIST=\"2.2.0\"\n\nSOURCE_FILES=\"MCPConnection.h MCPConnection.m MCPFastQueries.h MCPFastQueries.m MCPNull.h MCPNull.m MCPResult.h MCPResult.m MCPResultPlus.h MCPResultPlus.m SMySQL.h SMySQLConstants.h SMySQL_Prefix.h README TO_DO TO_INSTALL gpl.txt gpl.html mysql_bins CLI_Test SMySQL.pbproj\"\n\nBIN_FILES=\"SMySQL.framework SMySQL_static.framework SMySQL_bundled.framework CLI_Test.command\"\n\nrm -rf \"$WORK_DIR\"\n$MKDIRS \"$WORK_DIR\"\ncd \"$WORK_DIR\"\n\n#cat - > foo.txt <<EOF\n#This Foo Bar saying Hello World...\n#EOF\n\n# Preparing the source distribution:\nSOURCE_DIST_NAME=\"${BASE_DIST_NAME}_src_${VERSION_DIST}\"\n# Create a writable DMG file :\nhdiutil create -megabytes 5 Sources_Temp.dmg -layout NONE\n# Mount it just to be able to format it (and format in HFS+)\nDEV_SOURCES=`hdid -nomount Sources_Temp.dmg`\nnewfs_hfs -v \"$SOURCE_DIST_NAME\" $DEV_SOURCES\nhdiutil eject $DEV_SOURCES\n# Mount in writable way:\nhdid Sources_Temp.dmg > mount_source.log\nDEV_SOURCES=`awk '{print $1}' mount_source.log`\nVOL_SOURCES=`awk '{print $2}' mount_source.log`\n# Copy the sources to the source volume...\ncd \"$SRCROOT\"\n$CP $SOURCE_FILES $VOL_SOURCES\nfind $VOL_SOURCES -name 'CVS' -exec rm -rf {} \\;\ncd \"$WORK_DIR\"\n# Copying is done, we can eject and compress the image:\nhdiutil eject $DEV_SOURCES\nhdiutil convert -format UDZO Sources_Temp.dmg -o ${SOURCE_DIST_NAME}.dmg\n\n# Preparing the binary distribution:\nBINS_DIST_NAME=\"${BASE_DIST_NAME}_bin_${VERSION_DIST}\"\n# Create a writable DMG file :\nhdiutil create -megabytes 5 Bins_Temp.dmg -layout NONE\n# Mount it just to be able to format it (and format in HFS+)\nDEV_BINS=`hdid -nomount Bins_Temp.dmg`\nnewfs_hfs -v \"$BINS_DIST_NAME\" $DEV_BINS\nhdiutil eject $DEV_BINS\n# Mount in writable way:\nhdid Bins_Temp.dmg > mount_bin.log\nDEV_BINS=`awk '{print $1}' mount_bin.log`\nVOL_BINS=`awk '{print $2}' mount_bin.log`\n# Copy the sources to the source volume...\ncd \"$TARGET_BUILD_DIR\"\n$CP $BIN_FILES $VOL_BINS\n$CP \"${SRCROOT}/README\" ${VOL_BINS}/README \ncd \"$WORK_DIR\"\n# Copying is done, we can eject and compress the image:\nhdiutil eject $DEV_BINS\nhdiutil convert -format UDZO Bins_Temp.dmg -o ${BINS_DIST_NAME}.dmg\n\n\n# Clean_up:\nrm -f Sources_Temp.dmg\nrm -f mount_source.log\nrm -f Bins_Temp.dmg\nrm -f mount_bin.log\n\necho Everything will be in : $WORK_DIR\n\n\n"; }; //0D0 |
From: Serge C. <ser...@us...> - 2003-08-18 00:46:49
|
Update of /cvsroot/mysql-cocoa/SMySQL In directory sc8-pr-cvs1:/tmp/cvs-serv18417 Modified Files: README TO_INSTALL Log Message: Updated the README file (now correspond to the new project architecture). Added a target to the project to generate the Disk Image for the sources and binraies releases. Still have to write a README_BINARY file. Emptied TO_INSTALL file... maybe I'll want to write something in it later (for the moment the info is in README!!!). 2003-08-18; Serge Cohen. Index: README =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/README,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** README 16 Aug 2003 20:36:23 -0000 1.3 --- README 18 Aug 2003 00:38:13 -0000 1.4 *************** *** 1,5 **** - OBSOLETE!!!!! - - READ ME file for SMySQL, from MySQL Cocoa project. --- 1,2 ---- *************** *** 11,15 **** This framework is aimed at programers which want to connect to a MySQL database from a application developed with Cocoa (and maybe GNUStep, although I've not tried myself). The framework is based on the C API of MySQL and hence uses (or include) the libmysqlclient library coming from MySQL. ! Objects from this framework (namely MCPConnection and MCPResult) belongs to the Model layer and uses anly the Foundation API. The development is done with Project Builder (the IDE from Apple -previously NeXT-), and no other environment is supported (yet !! if you want ot port it to another env. I'll be glad to provide you with all the information I know which can help you). --- 8,12 ---- This framework is aimed at programers which want to connect to a MySQL database from a application developed with Cocoa (and maybe GNUStep, although I've not tried myself). The framework is based on the C API of MySQL and hence uses (or include) the libmysqlclient library coming from MySQL. ! Objects from this framework (namely MCPConnection and MCPResult) belongs to the Model layer and uses anly the Foundation API. The development is done with Project Builder (the IDE from Apple -previously NeXT-), and no other environment is supported (yet !! if you want to port it to another env. I'll be glad to provide you with all the information I know which can help you). *************** *** 25,53 **** 1. Frameworks location (Indeed I would suggest you read Apple doc about OS X...): ! If a framework is used by many applications, it's better to have a central repository for him. This repository exist, it's the folder Library/Frameworks (of any of the domains: System, Network, User ...). Any application which need one of these framework just declare the of the framework, and the dynamic linker will look for it in all these repository (in a given order which you'll find in Apple doc). ! -> Lets call this kind of framework a 'Global framework' In the mean time, an application programmer might want to wrap some of his application capabilities in a framework (to be able to use it in another app easily). In this case it's better if the framework does not take place (and namespace) in the central repository, even more it's better if you don't have to ask the user to install a framework to be able to run the app. In this aim you can embed the framework in the application bundle (in the "Contents/Frameworks/" folder of the bundle). Then you should set precisely the path to reach the framework (at compile time). ! -> Lets call this kind of framework a 'embeded framework' 2. The form libmysqlclient used: ! The same kind question arise about libmysqlclient, it exists in two forms: static library (archive), or dynamic lib (shared object). The dynamic lib is much better to use if the user had it setted personnaly (give coherence to all the applications using the client side of mysql) BUT it might forces the user to install one more thing. ! In the case the application might be installed by users who doe not to bother with mysql installation, it's much easier for the user to have the library staticly linked (one once for all by the developer) in the framework. -- Now the 3 flavours of the framework: ! 1. Target : SMySQL The framework is to be installed in one of the central repository. And because you're not afraid of this knid of installs, this one relies on the dynamic version of libmysqlclient. One of the big PLUS of this install is that you can use the framework even in "Foundation" type application (command line interface, launched in terminal). ! 2. Target : SMySQL_embeded ! Kind of a mix target (exists mainly for historic reasons). The framework is made to be embeded in the application (and not clutter the central repositories), but it relies on the dynamic verison of the library (interesting if you have to install this lib for other API, like PERL's). ! 3. Target : SMySQL_fully_embeded ! The framework is made to be embeded in the application bundle and DOES NOT rely on any external libraries (except the one provided as standard with Mac OS X). In this target the libmysqlclient is staticly linked in the framework. ! NB: Only 1. can be used from a "Foundation" application (like SMySQL_test). For GUI application the method recommended is 3. (from Apple recommandation). --- 22,50 ---- 1. Frameworks location (Indeed I would suggest you read Apple doc about OS X...): ! If a framework is used by many applications, it's better to have a central repository for him. This repository exist, it's the folder Library/Frameworks (of any of the domains: System, Network, User ...). Any application which need one of these framework just declare the name of the framework, and the dynamic linker will look for it in all these repository (in a given order which you'll find in Apple doc). ! -> Lets call this kind of framework a 'System-wide framework' In the mean time, an application programmer might want to wrap some of his application capabilities in a framework (to be able to use it in another app easily). In this case it's better if the framework does not take place (and namespace) in the central repository, even more it's better if you don't have to ask the user to install a framework to be able to run the app. In this aim you can embed the framework in the application bundle (in the "Contents/Frameworks/" folder of the bundle). Then you should set precisely the path to reach the framework (at compile time). ! -> Lets call this kind of framework a 'Bundled framework' 2. The form libmysqlclient used: ! The same kind of question arise about libmysqlclient, it exists in two forms: static library (archive), or dynamic lib (shared object). The dynamic lib is much better to use if the user had it setted personnaly (give coherence to all the applications using the client side of mysql) BUT it might forces the user to install one more thing. ! In the case the application might be installed by users who doe not want to bother with mysql installation, it's much easier for the user to have the library staticly linked (once for all by the developer) in the framework. -- Now the 3 flavours of the framework: ! 1. Target : SMySQL (System-wide framework using dynamic library) The framework is to be installed in one of the central repository. And because you're not afraid of this knid of installs, this one relies on the dynamic version of libmysqlclient. One of the big PLUS of this install is that you can use the framework even in "Foundation" type application (command line interface, launched in terminal). ! 2. Target : SMySQL_static (System-wide framework using static library) ! Kind of a mix target. The framework is made to be installed in one of the central repository, but is not relying on the libmysqlclient dynamic library (instead it contains the static version of the library). The advantages over the SMySQL target is that it does not requires that you install the libmysqlclient.dylib, though you still can use this framework with "Foundation" tools. ! 3. Target : SMySQL_bundled (bundled framework using static library) ! The framework is made to be embeded in the application bundle and DOES NOT rely on any external libraries (except the one provided as standard with Mac OS X). In this target the libmysqlclient is staticly linked in the framework. This is the target you should use if you are developing a GUI application (Cocoa Bundle application, or Cocoa Application in the Project Builder notations). ! NB: Only 1. and 2. can be used from a "Foundation" application (like CLI_Test, which BTW has its own read me). For GUI application the method recommended is 3. (following Apple recommendations). *************** *** 56,75 **** ++++++++++++++++++++++++++++++++ ! If you want to install flavours 1 or 2 (targets SMySQL or SMySQL_embeded), you have to have a working version of libmysqlclient together with the corresponding header files. You can get some infos on how to install the libmysqlclient lib in the Documentation package from the web site (mysql-cocoa.sf.net). - For flavour 1: - in Terminal (after installation of libmysqlclient), cd to the source directory and issue the two commands: - >cd SMySQL.pbproj - >pbxbuild -target SMySQL -buildstyle Development install DSTROOT=/ ! For flavour 2: ! Once the client side of MySQL is installed, you just have to open the project in Project Builder, select the target (SMySQL_embeded), the buildstyle and click the Build button. - For flavour 3: - Just get the project in PB, select target (SMySQL_fully_embeded), build style, and press Build. In all the three case the html doc is generated if you have AutoDoc (http://www.misckit.com/press/press_autodoc_2.0b7.html) installed. It will be in the directory: SMySQL.framework/Resources/English.lproj/Documentation/ ! ++++++++++++++++++++++++++++++++ --- 53,105 ---- ++++++++++++++++++++++++++++++++ ! If you want to install flavour 1 (target SMySQL), you have to have a working version of libmysqlclient together with the corresponding header files. ! For flavour 1: (YOU NEED YOUR OWN VERSION OF libmysqlclient.dylib). ! - Open the SMySQL.pbproj with Project builder. ! - Select SMySQL as current target. ! - Select the buildstyle you're interested in (Development : No optimisation, Profiling : optimisation and profiling infos, Deployment : optimisation). ! - Build (menu Build -> Build). ! - In the Finder, move the resulting framework (SMySQL.framework in the build subfolder of the project sources) to one of the Library/Frameworks places (you might need to create the Frameworks subdirectory yourself). ! ! (then you can try building and running CLI_Test target, for that read the CLI_Test/README file). ! ! ! ! For flavour 2: (YOU HAVE TO MAKE SURE libmysqlclient.a HAS ITS TOC UP TO DATE) ! - In terminal, cd to the top level of the sources of the framework. ! - Issue the command: (don't worry if you get some warnings) ! ranlib mysql_bins/libmysqlclient.a ! ! - Open the SMySQL.pbproj with Project builder. ! - Select SMySQL_static as current target. ! - Select the buildstyle you're interested in (Development : No optimisation, Profiling : optimisation and profiling infos, Deployment : optimisation). ! - Build (menu Build -> Build). ! - In the Finder, move the resulting framework (SMySQL_static.framework in the build subfolder of the project sources) to one of the Library/Frameworks places (you might need to create the Frameworks subdirectory yourself). ! ! (then you can try building and running CLI_Test target, for that read the CLI_Test/README file). ! ! ! ! For flavour 3: (YOU HAVE TO MAKE SURE libmysqlclient.a HAS ITS TOC UP TO DATE) ! - In terminal, cd to the top level of the sources of the framework. ! - Issue the command: (don't worry if you get some warnings) ! ranlib mysql_bins/libmysqlclient.a ! ! - Open the SMySQL.pbproj with Project builder. ! - Select SMySQL_bundled as current target. ! - Select the buildstyle you're interested in (Development : No optimisation, Profiling : optimisation and profiling infos, Deployment : optimisation). ! - Build (menu Build -> Build). ! The produced framework (SMySQL_bundle.framework in the build subfolder of the project sources) is ready to be bundled with the Cocoa application which is using it. To know how to do that, the best is to go to Apple documentation: ! file:///Developer/Documentation/DeveloperTools/ProjectBuilder/ProjectBuilder.help/Contents/Resources/English.lproj/Frameworks/_Embedding__Application.html ! ! Note 1: You can browse this document also in going in ProjectBuilder, Menu Help->Project Builder Help, then choose ÒCreatingÊFrameworksÊandÊLibrariesÓ -> ÒEmbedding a Framework in an ApplicationÓ ! Note 2: The SMySQL_bundled target is already taking care of the first part of the work described in the documentation (you DO NOT have to take care of the paragraph ÒPrepare the Framework to be EmbeddedÓ, it is already prepared for you). ! In all the three case the html doc is generated if you have AutoDoc (http://www.misckit.com/press/press_autodoc_2.0b7.html) installed. It will be in the directory: SMySQL.framework/Resources/English.lproj/Documentation/ ! (or SMySQL_static.framework/Resources/English.lproj/Documentation/, or SMySQL_bundle.framework/Resources/English.lproj/Documentation/). ++++++++++++++++++++++++++++++++ *************** *** 77,84 **** ++++++++++++++++++++++++++++++++ ! Still to come.... ! Serge Cohen; MySQL Cocoa project, 2002-01-06. --- 107,116 ---- ++++++++++++++++++++++++++++++++ + The CLI_Test application can be a good example to see how to use the framework. + ! More to come.... ! 2003-08-16; Serge Cohen. Index: TO_INSTALL =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/TO_INSTALL,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TO_INSTALL 16 Aug 2003 20:36:23 -0000 1.2 --- TO_INSTALL 18 Aug 2003 00:38:13 -0000 1.3 *************** *** 1,8 **** - OBSOLETE!!!!! - - - cd SMySQL.pbproj - pbxbuild -target SMySQL -buildstyle Development install DSTROOT=/ - - That should do it... - Serge Cohen 14 Dec 2001 --- 0 ---- |
From: Serge C. <ser...@us...> - 2003-08-16 21:38:46
|
Update of /cvsroot/mysql-cocoa/SMySQL/English.lproj In directory sc8-pr-cvs1:/tmp/cvs-serv28016/English.lproj Modified Files: InfoPlist.strings Log Message: Set version to 2.2.0d1 (reflecting that we are away from the version-2-1 branch). 2003-08-16; Serge Cohen. Index: InfoPlist.strings =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/English.lproj/InfoPlist.strings,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvs1SGMn9 and /tmp/cvsIuMdy8 differ |
From: Serge C. <ser...@us...> - 2003-08-16 21:38:06
|
Update of /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj In directory sc8-pr-cvs1:/tmp/cvs-serv28016/SMySQL.pbproj Modified Files: project.pbxproj Log Message: Set version to 2.2.0d1 (reflecting that we are away from the version-2-1 branch). 2003-08-16; Serge Cohen. Index: project.pbxproj =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj/project.pbxproj,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** project.pbxproj 16 Aug 2003 20:57:19 -0000 1.19 --- project.pbxproj 16 Aug 2003 21:06:33 -0000 1.20 *************** *** 179,183 **** <string>????</string> <key>CFBundleVersion</key> ! <string>2.1.1d1</string> <key>NSPrincipalClass</key> <string></string> --- 179,183 ---- <string>????</string> <key>CFBundleVersion</key> ! <string>2.2.0d1</string> <key>NSPrincipalClass</key> <string></string> *************** *** 462,466 **** <string>????</string> <key>CFBundleVersion</key> ! <string>2.1.1d1</string> </dict> </plist> --- 462,466 ---- <string>????</string> <key>CFBundleVersion</key> ! <string>2.2.0d1</string> </dict> </plist> *************** *** 593,597 **** <string>????</string> <key>CFBundleVersion</key> ! <string>2.1.1d1</string> </dict> </plist> --- 593,597 ---- <string>????</string> <key>CFBundleVersion</key> ! <string>2.2.0d1</string> </dict> </plist> |
From: Serge C. <ser...@us...> - 2003-08-16 21:34:11
|
Update of /cvsroot/mysql-cocoa/SMySQL In directory sc8-pr-cvs1:/tmp/cvs-serv27163 Modified Files: MCPConnection.m Log Message: Adding the tag name to the documentation (first trying on MCPConnection only). AGAIN 2... 2003-08-16; Serge Cohen. Index: MCPConnection.m =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/MCPConnection.m,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** MCPConnection.m 16 Aug 2003 21:00:48 -0000 1.4 --- MCPConnection.m 16 Aug 2003 21:02:15 -0000 1.5 *************** *** 39,43 **** /*" !{ $Id$ } ! !{ $Revision$ } This class is used to keep a connection with a MySQL server, it correspond to the MYSQL structure of the C API, or the database handle of the PERL DBI/DBD interface. --- 39,43 ---- /*" !{ $Id$ } ! !{ $Name$ } This class is used to keep a connection with a MySQL server, it correspond to the MYSQL structure of the C API, or the database handle of the PERL DBI/DBD interface. |
From: Serge C. <ser...@us...> - 2003-08-16 21:15:16
|
Update of /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj In directory sc8-pr-cvs1:/tmp/cvs-serv28566 Modified Files: cohen.pbxuser Log Message: Replaced the cohen.pbxuser file... 2003-08-16; Serge Cohen. Index: cohen.pbxuser =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj/cohen.pbxuser,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** cohen.pbxuser 16 Aug 2003 14:11:18 -0000 1.18 --- cohen.pbxuser 16 Aug 2003 21:10:00 -0000 1.19 *************** *** 2,19 **** { 0867D690FE84028FC02AAC07 = { ! activeBuildStyle = F51A62D4022D7B3301952E7A; ! activeExecutable = F59C3D4602AA458C017B4675; ! activeTarget = F5649F0E023FDCA201D04C4B; addToTargets = ( - 0867D69CFE84028FC02AAC07, - F5649F0E023FDCA201D04C4B, - ); - breakpoints = ( [...3231 lines suppressed...] ! }; ! 0DCFFEDC04EEA7FE00AD80EC = { ! isa = PBXFileReference; ! name = i_Creating_B_BCBIEGA.html; ! path = /Developer/Documentation/DeveloperTools/ProjectBuilder/ProjectBuilder.help/Contents/Resources/English.lproj/Bundles/i_Creating_B_BCBIEGA.html; ! refType = 0; ! }; ! 0DCFFEDE04EEA7FE00AD80EC = { ! isa = PBXFileReference; ! name = i_How_a_Prod_JBDCDGB.html; ! path = /Developer/Documentation/DeveloperTools/ProjectBuilder/ProjectBuilder.help/Contents/Resources/English.lproj/InsidePB/i_How_a_Prod_JBDCDGB.html; ! refType = 0; ! }; ! 0DCFFEDF04EEA7FE00AD80EC = { ! isa = PBXFileReference; ! name = index.html; ! path = /Developer/Documentation/DeveloperTools/ProjectBuilder/ProjectBuilder.help/Contents/Resources/English.lproj/Frameworks/index.html; ! refType = 0; }; } |
From: Serge C. <ser...@us...> - 2003-08-16 21:14:35
|
Update of /cvsroot/mysql-cocoa/SMySQL In directory sc8-pr-cvs1:/tmp/cvs-serv29661 Modified Files: MCPConnection.m Log Message: Adding the tag name to the documentation (first trying on MCPConnection only). AGAIN 3 (after tagging head)... 2003-08-16; Serge Cohen. Index: MCPConnection.m =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/MCPConnection.m,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** MCPConnection.m 16 Aug 2003 21:02:15 -0000 1.5 --- MCPConnection.m 16 Aug 2003 21:14:32 -0000 1.6 *************** *** 36,39 **** --- 36,40 ---- + @implementation MCPConnection /*" |
From: Serge C. <ser...@us...> - 2003-08-16 21:13:40
|
Update of /cvsroot/mysql-cocoa/SMySQL In directory sc8-pr-cvs1:/tmp/cvs-serv26162 Modified Files: MCPConnection.m Log Message: Adding the tag name to the documentation (first trying on MCPConnection only). 2003-08-16; Serge Cohen. Index: MCPConnection.m =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/MCPConnection.m,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MCPConnection.m 25 Dec 2002 21:17:37 -0000 1.2 --- MCPConnection.m 16 Aug 2003 20:57:19 -0000 1.3 *************** *** 39,42 **** --- 39,43 ---- /*" !{ $Id$ } + !{ $Name$ } This class is used to keep a connection with a MySQL server, it correspond to the MYSQL structure of the C API, or the database handle of the PERL DBI/DBD interface. |
From: Serge C. <ser...@us...> - 2003-08-16 21:13:40
|
Update of /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj In directory sc8-pr-cvs1:/tmp/cvs-serv26162/SMySQL.pbproj Modified Files: project.pbxproj Log Message: Adding the tag name to the documentation (first trying on MCPConnection only). 2003-08-16; Serge Cohen. Index: project.pbxproj =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj/project.pbxproj,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** project.pbxproj 16 Aug 2003 20:36:23 -0000 1.18 --- project.pbxproj 16 Aug 2003 20:57:19 -0000 1.19 *************** *** 121,124 **** --- 121,125 ---- 0867D69CFE84028FC02AAC07 = { buildPhases = ( + 0D2AA83B04EED03700349A90, 0867D69DFE84028FC02AAC07, 0867D69EFE84028FC02AAC07, *************** *** 301,304 **** --- 302,344 ---- //0D3 //0D4 + 0D2AA83B04EED03700349A90 = { + buildActionMask = 12; + files = ( + ); + generatedFileNames = ( + ); + isa = PBXShellScriptBuildPhase; + neededFileNames = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "MKDIRS=\"mkdir -p\"\nAUTODOC=/usr/local/bin/autodoc\nAUTODOC_FLAGS=\"-copydocs -timestamp -allclasses\"\nAUTODOC_FORMAT=html\nAUTODOC_LANGUAGE=English\nexport AD_COPYRIGHT=\"MySQL Cocoa Project\"\n\n# If autodoc is not installed, we quit without any error\ntest -x $AUTODOC || exit 0\n\nPUBLIC_DOC_INSTALLDIR=\"$SYMROOT/$PRODUCT_NAME.framework/Resources/$AUTODOC_LANGUAGE.lproj/Documentation\"\n\n# We need to write down file names here\nAUTODOC_FILES=\"MCPResultPlus.h MCPFastQueries.h MCPConnection.h MCPResult.h MCPNull.h\"\nAUTODOC_DOCDIR=\"$PUBLIC_DOC_INSTALLDIR\"\n\nOTHER_AUTODOC_FLAGS=\"-typedirs -allclasses -combine -force -nosingles\"\n\nALL_AUTODOC_FLAGS=\"$AUTODOC_FLAGS $OTHER_AUTODOC_FLAGS\"\n\n$MKDIRS $PUBLIC_DOC_INSTALLDIR\n$AUTODOC $ALL_AUTODOC_FLAGS -format $AUTODOC_FORMAT -dest $AUTODOC_DOCDIR $AUTODOC_FILES\n"; + }; + 0D2AA83C04EED06400349A90 = { + buildActionMask = 2147483647; + files = ( + ); + generatedFileNames = ( + ); + isa = PBXShellScriptBuildPhase; + neededFileNames = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "MKDIRS=\"mkdir -p\"\nAUTODOC=/usr/local/bin/autodoc\nAUTODOC_FLAGS=\"-copydocs -timestamp -allclasses\"\nAUTODOC_FORMAT=html\nAUTODOC_LANGUAGE=English\nexport AD_COPYRIGHT=\"MySQL Cocoa Project\"\n\n# If autodoc is not installed, we quit without any error\ntest -x $AUTODOC || exit 0\n\nPUBLIC_DOC_INSTALLDIR=\"$SYMROOT/$PRODUCT_NAME.framework/Resources/$AUTODOC_LANGUAGE.lproj/Documentation\"\n\n# We need to write down file names here\nAUTODOC_FILES=\"MCPResultPlus.h MCPFastQueries.h MCPConnection.h MCPResult.h MCPNull.h\"\nAUTODOC_DOCDIR=\"$PUBLIC_DOC_INSTALLDIR\"\n\nOTHER_AUTODOC_FLAGS=\"-typedirs -allclasses -combine -force -nosingles\"\n\nALL_AUTODOC_FLAGS=\"$AUTODOC_FLAGS $OTHER_AUTODOC_FLAGS\"\n\n$MKDIRS $PUBLIC_DOC_INSTALLDIR\n$AUTODOC $ALL_AUTODOC_FLAGS -format $AUTODOC_FORMAT -dest $AUTODOC_DOCDIR $AUTODOC_FILES\n"; + }; + 0D2AA83D04EED07700349A90 = { + buildActionMask = 2147483647; + files = ( + ); + generatedFileNames = ( + ); + isa = PBXShellScriptBuildPhase; + neededFileNames = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "MKDIRS=\"mkdir -p\"\nAUTODOC=/usr/local/bin/autodoc\nAUTODOC_FLAGS=\"-copydocs -timestamp -allclasses\"\nAUTODOC_FORMAT=html\nAUTODOC_LANGUAGE=English\nexport AD_COPYRIGHT=\"MySQL Cocoa Project\"\n\n# If autodoc is not installed, we quit without any error\ntest -x $AUTODOC || exit 0\n\nPUBLIC_DOC_INSTALLDIR=\"$SYMROOT/$PRODUCT_NAME.framework/Resources/$AUTODOC_LANGUAGE.lproj/Documentation\"\n\n# We need to write down file names here\nAUTODOC_FILES=\"MCPResultPlus.h MCPFastQueries.h MCPConnection.h MCPResult.h MCPNull.h\"\nAUTODOC_DOCDIR=\"$PUBLIC_DOC_INSTALLDIR\"\n\nOTHER_AUTODOC_FLAGS=\"-typedirs -allclasses -combine -force -nosingles\"\n\nALL_AUTODOC_FLAGS=\"$AUTODOC_FLAGS $OTHER_AUTODOC_FLAGS\"\n\n$MKDIRS $PUBLIC_DOC_INSTALLDIR\n$AUTODOC $ALL_AUTODOC_FLAGS -format $AUTODOC_FORMAT -dest $AUTODOC_DOCDIR $AUTODOC_FILES\n"; + }; 0DA7207904EE8A99002E9126 = { buildActionMask = 2147483647; *************** *** 360,363 **** --- 400,404 ---- 0DA7207E04EE8A99002E9126 = { buildPhases = ( + 0D2AA83C04EED06400349A90, 0DA7207904EE8A99002E9126, 0DA7207A04EE8A99002E9126, *************** *** 490,493 **** --- 531,535 ---- 0DA7208504EE8C3F002E9126 = { buildPhases = ( + 0D2AA83D04EED07700349A90, 0DA7208004EE8C3F002E9126, 0DA7208104EE8C3F002E9126, |
From: Serge C. <ser...@us...> - 2003-08-16 21:10:15
|
Update of /cvsroot/mysql-cocoa/SMySQL In directory sc8-pr-cvs1:/tmp/cvs-serv26908 Modified Files: MCPConnection.m Log Message: Adding the tag name to the documentation (first trying on MCPConnection only). AGAIN... 2003-08-16; Serge Cohen. Index: MCPConnection.m =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/MCPConnection.m,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MCPConnection.m 16 Aug 2003 20:57:19 -0000 1.3 --- MCPConnection.m 16 Aug 2003 21:00:48 -0000 1.4 *************** *** 39,43 **** /*" !{ $Id$ } ! !{ $Name$ } This class is used to keep a connection with a MySQL server, it correspond to the MYSQL structure of the C API, or the database handle of the PERL DBI/DBD interface. --- 39,43 ---- /*" !{ $Id$ } ! !{ $Revision$ } This class is used to keep a connection with a MySQL server, it correspond to the MYSQL structure of the C API, or the database handle of the PERL DBI/DBD interface. |
Update of /cvsroot/mysql-cocoa/SMySQL/mysqlclient_source/headers In directory sc8-pr-cvs1:/tmp/cvs-serv24263/mysqlclient_source/headers Removed Files: client_priv.h completion_hash.h config-win.h dbug.h errmsg.h ft_global.h getopt.h global.h hash.h heap.h log_event.h m_ctype.h m_string.h merge.h my_alarm.h my_base.h my_bitmap.h my_config.h my_dir.h my_global.h my_list.h my_net.h my_no_pthread.h my_nosys.h my_pthread.h my_readline.h my_sys.h my_tree.h myisam.h myisammrg.h myisampack.h mysql.h mysql_com.h mysql_version.h mysqld_error.h mysys_err.h nisam.h queues.h raid.h sql_string.h sslopt-case.h sslopt-longopts.h sslopt-usage.h sslopt-vars.h t_ctype.h thr_alarm.h thr_lock.h violite.h Log Message: Removed directories from the work area, they are of no anymore use... - SMySQL_test - mysqlclient_source 2003-08-16; Serge Cohen. --- client_priv.h DELETED --- --- completion_hash.h DELETED --- --- config-win.h DELETED --- --- dbug.h DELETED --- --- errmsg.h DELETED --- --- ft_global.h DELETED --- --- getopt.h DELETED --- --- global.h DELETED --- --- hash.h DELETED --- --- heap.h DELETED --- --- log_event.h DELETED --- --- m_ctype.h DELETED --- --- m_string.h DELETED --- --- merge.h DELETED --- --- my_alarm.h DELETED --- --- my_base.h DELETED --- --- my_bitmap.h DELETED --- --- my_config.h DELETED --- --- my_dir.h DELETED --- --- my_global.h DELETED --- --- my_list.h DELETED --- --- my_net.h DELETED --- --- my_no_pthread.h DELETED --- --- my_nosys.h DELETED --- --- my_pthread.h DELETED --- --- my_readline.h DELETED --- --- my_sys.h DELETED --- --- my_tree.h DELETED --- --- myisam.h DELETED --- --- myisammrg.h DELETED --- --- myisampack.h DELETED --- --- mysql.h DELETED --- --- mysql_com.h DELETED --- --- mysql_version.h DELETED --- --- mysqld_error.h DELETED --- --- mysys_err.h DELETED --- --- nisam.h DELETED --- --- queues.h DELETED --- --- raid.h DELETED --- --- sql_string.h DELETED --- --- sslopt-case.h DELETED --- --- sslopt-longopts.h DELETED --- --- sslopt-usage.h DELETED --- --- sslopt-vars.h DELETED --- --- t_ctype.h DELETED --- --- thr_alarm.h DELETED --- --- thr_lock.h DELETED --- --- violite.h DELETED --- |
Update of /cvsroot/mysql-cocoa/SMySQL/mysqlclient_source In directory sc8-pr-cvs1:/tmp/cvs-serv24263/mysqlclient_source Removed Files: array.c bchange.c bmove.c bmove_upp.c charset.c conf_to_src.c ctype.c ctype_autoconf.c ctype_extra_sources.c dbug.c default.c errmsg.c errors.c get_password.c getopt.c getopt1.c getvar.c hash.c int2str.c is_prefix.c libmysql.c list.c llstr.c longlong2str.c mf_cache.c mf_casecnv.c mf_dirname.c mf_fn_ext.c mf_format.c mf_iocache.c mf_loadpath.c mf_pack.c mf_path.c mf_tempfile.c mf_unixpath.c mf_wcomp.c mulalloc.c my_alloc.c my_compress.c my_create.c my_delete.c my_div.c my_error.c my_fopen.c my_fstream.c my_getwd.c my_init.c my_lib.c my_malloc.c my_messnc.c my_net.c my_once.c my_open.c my_pread.c my_pthread.c my_read.c my_realloc.c my_seek.c my_static.c my_static.h my_symlink.c my_thr_init.c my_write.c mysys_priv.h net.c password.c safemalloc.c str2int.c strcend.c strcont.c strend.c strfill.c string.c strinstr.c strmake.c strmov.c strnlen.c strnmov.c strto.c strtoll.c strtoull.c strxmov.c thr_mutex.c typelib.c violite.c Log Message: Removed directories from the work area, they are of no anymore use... - SMySQL_test - mysqlclient_source 2003-08-16; Serge Cohen. --- array.c DELETED --- --- bchange.c DELETED --- --- bmove.c DELETED --- --- bmove_upp.c DELETED --- --- charset.c DELETED --- --- conf_to_src.c DELETED --- --- ctype.c DELETED --- --- ctype_autoconf.c DELETED --- --- ctype_extra_sources.c DELETED --- --- dbug.c DELETED --- --- default.c DELETED --- --- errmsg.c DELETED --- --- errors.c DELETED --- --- get_password.c DELETED --- --- getopt.c DELETED --- --- getopt1.c DELETED --- --- getvar.c DELETED --- --- hash.c DELETED --- --- int2str.c DELETED --- --- is_prefix.c DELETED --- --- libmysql.c DELETED --- --- list.c DELETED --- --- llstr.c DELETED --- --- longlong2str.c DELETED --- --- mf_cache.c DELETED --- --- mf_casecnv.c DELETED --- --- mf_dirname.c DELETED --- --- mf_fn_ext.c DELETED --- --- mf_format.c DELETED --- --- mf_iocache.c DELETED --- --- mf_loadpath.c DELETED --- --- mf_pack.c DELETED --- --- mf_path.c DELETED --- --- mf_tempfile.c DELETED --- --- mf_unixpath.c DELETED --- --- mf_wcomp.c DELETED --- --- mulalloc.c DELETED --- --- my_alloc.c DELETED --- --- my_compress.c DELETED --- --- my_create.c DELETED --- --- my_delete.c DELETED --- --- my_div.c DELETED --- --- my_error.c DELETED --- --- my_fopen.c DELETED --- --- my_fstream.c DELETED --- --- my_getwd.c DELETED --- --- my_init.c DELETED --- --- my_lib.c DELETED --- --- my_malloc.c DELETED --- --- my_messnc.c DELETED --- --- my_net.c DELETED --- --- my_once.c DELETED --- --- my_open.c DELETED --- --- my_pread.c DELETED --- --- my_pthread.c DELETED --- --- my_read.c DELETED --- --- my_realloc.c DELETED --- --- my_seek.c DELETED --- --- my_static.c DELETED --- --- my_static.h DELETED --- --- my_symlink.c DELETED --- --- my_thr_init.c DELETED --- --- my_write.c DELETED --- --- mysys_priv.h DELETED --- --- net.c DELETED --- --- password.c DELETED --- --- safemalloc.c DELETED --- --- str2int.c DELETED --- --- strcend.c DELETED --- --- strcont.c DELETED --- --- strend.c DELETED --- --- strfill.c DELETED --- --- string.c DELETED --- --- strinstr.c DELETED --- --- strmake.c DELETED --- --- strmov.c DELETED --- --- strnlen.c DELETED --- --- strnmov.c DELETED --- --- strto.c DELETED --- --- strtoll.c DELETED --- --- strtoull.c DELETED --- --- strxmov.c DELETED --- --- thr_mutex.c DELETED --- --- typelib.c DELETED --- --- violite.c DELETED --- |
From: Serge C. <ser...@us...> - 2003-08-16 20:41:55
|
Update of /cvsroot/mysql-cocoa/SMySQL/SMySQL_Test In directory sc8-pr-cvs1:/tmp/cvs-serv24263/SMySQL_Test Removed Files: gpl.txt main2.m Log Message: Removed directories from the work area, they are of no anymore use... - SMySQL_test - mysqlclient_source 2003-08-16; Serge Cohen. --- gpl.txt DELETED --- --- main2.m DELETED --- |
From: Serge C. <ser...@us...> - 2003-08-16 20:36:27
|
Update of /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj In directory sc8-pr-cvs1:/tmp/cvs-serv23313/SMySQL.pbproj Modified Files: project.pbxproj Log Message: Modified completely the Project Builder project to try to make it easier to understand: - The different type of framework are now different targets (whereas they where produced by different build styles before). - The names should be clearer: 1. SMySQL is a system wide framework using the libmysqlclient.dylib (DYNAMIC version of the mysql client lib, should be in /usr/local/mysql). 2. SMySQL_static is a system wide framework using the libmysqlclient.a (STATIC version of the mysql client lib). 3. SMySQL_bundled is a version of the framework that has to be placed in the Framework subfolder of an application bundle. For easy distribution it uses the STATIC version of the mysql client library. - The sources of libmysqlclient are not in the project anymore; INSTEAD the sources of the frameworks comes with my own version of the library (the one I've installed last on my computer), so that both SMySQL_static and SMySQL_bundled can be build 'out of the box' when getting the sources of the framework. - The small application to test the framework in a command line interface type of application (without bundle) has been renamed as CLI_Test (it is an evolution of MySQM_test). The target contains also a README, and a mysql script to create and populate the proper user/DB/table. - Some files have been marked as OBSOLETE... They really are VERY obsolete. 2003-08-16; Serge Cohen. Index: project.pbxproj =================================================================== RCS file: /cvsroot/mysql-cocoa/SMySQL/SMySQL.pbproj/project.pbxproj,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** project.pbxproj 16 Aug 2003 14:11:18 -0000 1.17 --- project.pbxproj 16 Aug 2003 20:36:23 -0000 1.18 *************** *** 11,15 **** --- 11,17 ---- buildSettings = { COPY_PHASE_STRIP = NO; + DEBUGGING_SYMBOLS = YES; OPTIMIZATION_CFLAGS = "-O0"; + PROFILING_CODE = YES; }; isa = PBXBuildStyle; *************** *** 21,24 **** [...3688 lines suppressed...] isa = PBXGroup; ! name = "Other Sources"; refType = 4; }; ! 32DBCF5E0370ADEE00C91783 = { ! fileEncoding = 4; isa = PBXFileReference; ! path = SMySQL_Prefix.h; refType = 4; + }; + 32DBCF5F0370ADEE00C91783 = { + fileRef = 32DBCF5E0370ADEE00C91783; + isa = PBXBuildFile; + settings = { + ATTRIBUTES = ( + Private, + ); + }; }; }; |
From: Serge C. <ser...@us...> - 2003-08-16 20:36:27
|
Update of /cvsroot/mysql-cocoa/SMySQL/mysql_bins In directory sc8-pr-cvs1:/tmp/cvs-serv23313/mysql_bins Added Files: libmysqlclient.a my_alloc.h mysql.h mysql_com.h mysql_embed.h mysql_version.h Log Message: Modified completely the Project Builder project to try to make it easier to understand: - The different type of framework are now different targets (whereas they where produced by different build styles before). - The names should be clearer: 1. SMySQL is a system wide framework using the libmysqlclient.dylib (DYNAMIC version of the mysql client lib, should be in /usr/local/mysql). 2. SMySQL_static is a system wide framework using the libmysqlclient.a (STATIC version of the mysql client lib). 3. SMySQL_bundled is a version of the framework that has to be placed in the Framework subfolder of an application bundle. For easy distribution it uses the STATIC version of the mysql client library. - The sources of libmysqlclient are not in the project anymore; INSTEAD the sources of the frameworks comes with my own version of the library (the one I've installed last on my computer), so that both SMySQL_static and SMySQL_bundled can be build 'out of the box' when getting the sources of the framework. - The small application to test the framework in a command line interface type of application (without bundle) has been renamed as CLI_Test (it is an evolution of MySQM_test). The target contains also a README, and a mysql script to create and populate the proper user/DB/table. - Some files have been marked as OBSOLETE... They really are VERY obsolete. 2003-08-16; Serge Cohen. --- NEW FILE: libmysqlclient.a --- !<arch> #1/16 1061064958 501 20 100644 13664 ` __.SYMDEF SORTED ª µ ½ É Ñ o Ý Y d M [...1303 lines suppressed...] ü þíúÎ þíúÎ ü þíúÎ viosslfactories.o þíúÎ é|`x|x Y, A, --- NEW FILE: my_alloc.h --- /* Copyright (C) 2000 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* Data structures for mysys/my_alloc.c (root memory allocator) */ #ifndef _my_alloc_h #define _my_alloc_h #define MAX_BLOCK_USAGE_BEFORE_DROP 10 typedef struct st_used_mem { /* struct for once_alloc (block) */ struct st_used_mem *next; /* Next block in use */ unsigned int left; /* memory left in block */ unsigned int size; /* size of block */ } USED_MEM; typedef struct st_mem_root { USED_MEM *free; /* blocks with free memory in it */ USED_MEM *used; /* blocks almost without free memory */ USED_MEM *pre_alloc; /* preallocated block */ /* if block have less memory it will be put in 'used' list */ unsigned int min_malloc; unsigned int block_size; /* initial block size */ unsigned int block_num; /* allocated blocks counter */ /* first free block in queue test counter (if it exceed MAX_BLOCK_USAGE_BEFORE_DROP block will be droped in 'used' list) */ unsigned int first_block_usage; void (*error_handler)(void); } MEM_ROOT; #endif --- NEW FILE: mysql.h --- /* Copyright (C) 2000 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _mysql_h #define _mysql_h #ifdef __CYGWIN__ /* CYGWIN implements a UNIX API */ #undef WIN #undef _WIN #undef _WIN32 #undef _WIN64 #undef __WIN__ #endif #ifdef __cplusplus extern "C" { #endif #ifndef _global_h /* If not standard header */ #include <sys/types.h> #ifdef __LCC__ #include <winsock.h> /* For windows */ #endif typedef char my_bool; #if (defined(_WIN32) || defined(_WIN64)) && !defined(__WIN__) #define __WIN__ #endif #if !defined(__WIN__) #define STDCALL #else #define STDCALL __stdcall #endif typedef char * gptr; #ifndef my_socket_defined #ifdef __WIN__ #define my_socket SOCKET #else typedef int my_socket; #endif /* __WIN__ */ #endif /* my_socket_defined */ #endif /* _global_h */ #include "mysql_com.h" #include "mysql_version.h" extern unsigned int mysql_port; extern char *mysql_unix_port; #define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG) #define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG) #define IS_BLOB(n) ((n) & BLOB_FLAG) #define IS_NUM(t) ((t) <= FIELD_TYPE_INT24 || (t) == FIELD_TYPE_YEAR) #define IS_NUM_FIELD(f) ((f)->flags & NUM_FLAG) #define INTERNAL_NUM_FIELD(f) (((f)->type <= FIELD_TYPE_INT24 && ((f)->type != FIELD_TYPE_TIMESTAMP || (f)->length == 14 || (f)->length == 8)) || (f)->type == FIELD_TYPE_YEAR) typedef struct st_mysql_field { char *name; /* Name of column */ char *table; /* Table of column if column was a field */ char *org_table; /* Org table name if table was an alias */ char *db; /* Database for table */ char *def; /* Default value (set by mysql_list_fields) */ unsigned long length; /* Width of column */ unsigned long max_length; /* Max width of selected set */ unsigned int flags; /* Div flags */ unsigned int decimals; /* Number of decimals in field */ enum enum_field_types type; /* Type of field. Se mysql_com.h for types */ } MYSQL_FIELD; typedef char **MYSQL_ROW; /* return data as array of strings */ typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field */ #if defined(NO_CLIENT_LONG_LONG) typedef unsigned long my_ulonglong; #elif defined (__WIN__) typedef unsigned __int64 my_ulonglong; #else typedef unsigned long long my_ulonglong; #endif #define MYSQL_COUNT_ERROR (~(my_ulonglong) 0) typedef struct st_mysql_rows { struct st_mysql_rows *next; /* list of rows */ MYSQL_ROW data; } MYSQL_ROWS; typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; /* offset to current row */ #include "my_alloc.h" typedef struct st_mysql_data { my_ulonglong rows; unsigned int fields; MYSQL_ROWS *data; MEM_ROOT alloc; } MYSQL_DATA; struct st_mysql_options { unsigned int connect_timeout,client_flag; unsigned int port; char *host,*init_command,*user,*password,*unix_socket,*db; char *my_cnf_file,*my_cnf_group, *charset_dir, *charset_name; char *ssl_key; /* PEM key file */ char *ssl_cert; /* PEM cert file */ char *ssl_ca; /* PEM CA file */ char *ssl_capath; /* PEM directory of CA-s? */ char *ssl_cipher; /* cipher to use */ my_bool use_ssl; /* if to use SSL or not */ my_bool compress,named_pipe; /* On connect, find out the replication role of the server, and establish connections to all the peers */ my_bool rpl_probe; /* Each call to mysql_real_query() will parse it to tell if it is a read or a write, and direct it to the slave or the master */ my_bool rpl_parse; /* If set, never read from a master,only from slave, when doing a read that is replication-aware */ my_bool no_master_reads; }; enum mysql_option { MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_COMPRESS, MYSQL_OPT_NAMED_PIPE, MYSQL_INIT_COMMAND, MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP, MYSQL_SET_CHARSET_DIR, MYSQL_SET_CHARSET_NAME, MYSQL_OPT_LOCAL_INFILE}; enum mysql_status { MYSQL_STATUS_READY,MYSQL_STATUS_GET_RESULT, MYSQL_STATUS_USE_RESULT}; /* There are three types of queries - the ones that have to go to the master, the ones that go to a slave, and the adminstrative type which must happen on the pivot connectioin */ enum mysql_rpl_type { MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN }; typedef struct st_mysql { NET net; /* Communication parameters */ gptr connector_fd; /* ConnectorFd for SSL */ char *host,*user,*passwd,*unix_socket,*server_version,*host_info, *info,*db; struct charset_info_st *charset; MYSQL_FIELD *fields; MEM_ROOT field_alloc; my_ulonglong affected_rows; my_ulonglong insert_id; /* id if insert on table with NEXTNR */ my_ulonglong extra_info; /* Used by mysqlshow */ unsigned long thread_id; /* Id for connection in server */ unsigned long packet_length; unsigned int port,client_flag,server_capabilities; unsigned int protocol_version; unsigned int field_count; unsigned int server_status; unsigned int server_language; struct st_mysql_options options; enum mysql_status status; my_bool free_me; /* If free in mysql_close */ my_bool reconnect; /* set to 1 if automatic reconnect */ char scramble_buff[9]; /* Set if this is the original connection, not a master or a slave we have added though mysql_rpl_probe() or mysql_set_master()/ mysql_add_slave() */ my_bool rpl_pivot; /* Pointers to the master, and the next slave connections, points to itself if lone connection. */ struct st_mysql* master, *next_slave; struct st_mysql* last_used_slave; /* needed for round-robin slave pick */ /* needed for send/read/store/use result to work correctly with replication */ struct st_mysql* last_used_con; } MYSQL; typedef struct st_mysql_res { my_ulonglong row_count; MYSQL_FIELD *fields; MYSQL_DATA *data; MYSQL_ROWS *data_cursor; unsigned long *lengths; /* column lengths of current row */ MYSQL *handle; /* for unbuffered reads */ MEM_ROOT field_alloc; unsigned int field_count, current_field; MYSQL_ROW row; /* If unbuffered read */ MYSQL_ROW current_row; /* buffer to current row */ my_bool eof; /* Used by mysql_fetch_row */ } MYSQL_RES; #define MAX_MYSQL_MANAGER_ERR 256 #define MAX_MYSQL_MANAGER_MSG 256 #define MANAGER_OK 200 #define MANAGER_INFO 250 #define MANAGER_ACCESS 401 #define MANAGER_CLIENT_ERR 450 #define MANAGER_INTERNAL_ERR 500 typedef struct st_mysql_manager { NET net; char *host,*user,*passwd; unsigned int port; my_bool free_me; my_bool eof; int cmd_status; int last_errno; char* net_buf,*net_buf_pos,*net_data_end; int net_buf_size; char last_error[MAX_MYSQL_MANAGER_ERR]; } MYSQL_MANAGER; /* Set up and bring down the server; to ensure that applications will work when linked against either the standard client library or the embedded server library, these functions should be called. */ int STDCALL mysql_server_init(int argc, char **argv, char **groups); void STDCALL mysql_server_end(void); /* Set up and bring down a thread; these function should be called for each thread in an application which opens at least one MySQL connection. All uses of the connection(s) should be between these function calls. */ my_bool STDCALL mysql_thread_init(void); void STDCALL mysql_thread_end(void); /* Functions to get information from the MYSQL and MYSQL_RES structures Should definitely be used if one uses shared libraries. */ my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res); unsigned int STDCALL mysql_num_fields(MYSQL_RES *res); my_bool STDCALL mysql_eof(MYSQL_RES *res); MYSQL_FIELD *STDCALL mysql_fetch_field_direct(MYSQL_RES *res, unsigned int fieldnr); MYSQL_FIELD * STDCALL mysql_fetch_fields(MYSQL_RES *res); MYSQL_ROW_OFFSET STDCALL mysql_row_tell(MYSQL_RES *res); MYSQL_FIELD_OFFSET STDCALL mysql_field_tell(MYSQL_RES *res); unsigned int STDCALL mysql_field_count(MYSQL *mysql); my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql); my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql); unsigned int STDCALL mysql_errno(MYSQL *mysql); const char * STDCALL mysql_error(MYSQL *mysql); const char * STDCALL mysql_info(MYSQL *mysql); unsigned long STDCALL mysql_thread_id(MYSQL *mysql); const char * STDCALL mysql_character_set_name(MYSQL *mysql); MYSQL * STDCALL mysql_init(MYSQL *mysql); int STDCALL mysql_ssl_set(MYSQL *mysql, const char *key, const char *cert, const char *ca, const char *capath, const char *cipher); my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user, const char *passwd, const char *db); MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned int clientflag); void STDCALL mysql_close(MYSQL *sock); int STDCALL mysql_select_db(MYSQL *mysql, const char *db); int STDCALL mysql_query(MYSQL *mysql, const char *q); int STDCALL mysql_send_query(MYSQL *mysql, const char *q, unsigned long length); int STDCALL mysql_read_query_result(MYSQL *mysql); int STDCALL mysql_real_query(MYSQL *mysql, const char *q, unsigned long length); /* perform query on master */ int STDCALL mysql_master_query(MYSQL *mysql, const char *q, unsigned long length); int STDCALL mysql_master_send_query(MYSQL *mysql, const char *q, unsigned long length); /* perform query on slave */ int STDCALL mysql_slave_query(MYSQL *mysql, const char *q, unsigned long length); int STDCALL mysql_slave_send_query(MYSQL *mysql, const char *q, unsigned long length); /* enable/disable parsing of all queries to decide if they go on master or slave */ void STDCALL mysql_enable_rpl_parse(MYSQL* mysql); void STDCALL mysql_disable_rpl_parse(MYSQL* mysql); /* get the value of the parse flag */ int STDCALL mysql_rpl_parse_enabled(MYSQL* mysql); /* enable/disable reads from master */ void STDCALL mysql_enable_reads_from_master(MYSQL* mysql); void STDCALL mysql_disable_reads_from_master(MYSQL* mysql); /* get the value of the master read flag */ int STDCALL mysql_reads_from_master_enabled(MYSQL* mysql); enum mysql_rpl_type STDCALL mysql_rpl_query_type(const char* q, int len); /* discover the master and its slaves */ int STDCALL mysql_rpl_probe(MYSQL* mysql); /* set the master, close/free the old one, if it is not a pivot */ int STDCALL mysql_set_master(MYSQL* mysql, const char* host, unsigned int port, const char* user, const char* passwd); int STDCALL mysql_add_slave(MYSQL* mysql, const char* host, unsigned int port, const char* user, const char* passwd); int STDCALL mysql_shutdown(MYSQL *mysql); int STDCALL mysql_dump_debug_info(MYSQL *mysql); int STDCALL mysql_refresh(MYSQL *mysql, unsigned int refresh_options); int STDCALL mysql_kill(MYSQL *mysql,unsigned long pid); int STDCALL mysql_ping(MYSQL *mysql); const char * STDCALL mysql_stat(MYSQL *mysql); const char * STDCALL mysql_get_server_info(MYSQL *mysql); const char * STDCALL mysql_get_client_info(void); const char * STDCALL mysql_get_host_info(MYSQL *mysql); unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql); MYSQL_RES * STDCALL mysql_list_dbs(MYSQL *mysql,const char *wild); MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char *wild); MYSQL_RES * STDCALL mysql_list_fields(MYSQL *mysql, const char *table, const char *wild); MYSQL_RES * STDCALL mysql_list_processes(MYSQL *mysql); MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql); MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql); int STDCALL mysql_options(MYSQL *mysql,enum mysql_option option, const char *arg); void STDCALL mysql_free_result(MYSQL_RES *result); void STDCALL mysql_data_seek(MYSQL_RES *result, my_ulonglong offset); MYSQL_ROW_OFFSET STDCALL mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET offset); MYSQL_FIELD_OFFSET STDCALL mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset); MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result); unsigned long * STDCALL mysql_fetch_lengths(MYSQL_RES *result); MYSQL_FIELD * STDCALL mysql_fetch_field(MYSQL_RES *result); unsigned long STDCALL mysql_escape_string(char *to,const char *from, unsigned long from_length); unsigned long STDCALL mysql_real_escape_string(MYSQL *mysql, char *to,const char *from, unsigned long length); void STDCALL mysql_debug(const char *debug); char * STDCALL mysql_odbc_escape_string(MYSQL *mysql, char *to, unsigned long to_length, const char *from, unsigned long from_length, void *param, char * (*extend_buffer) (void *, char *to, unsigned long *length)); void STDCALL myodbc_remove_escape(MYSQL *mysql,char *name); unsigned int STDCALL mysql_thread_safe(void); MYSQL_MANAGER* STDCALL mysql_manager_init(MYSQL_MANAGER* con); MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, const char* host, const char* user, const char* passwd, unsigned int port); void STDCALL mysql_manager_close(MYSQL_MANAGER* con); int STDCALL mysql_manager_command(MYSQL_MANAGER* con, const char* cmd, int cmd_len); int STDCALL mysql_manager_fetch_line(MYSQL_MANAGER* con, char* res_buf, int res_buf_size); #define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT) #ifdef USE_OLD_FUNCTIONS MYSQL * STDCALL mysql_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd); int STDCALL mysql_create_db(MYSQL *mysql, const char *DB); int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB); #define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT) #endif #define HAVE_MYSQL_REAL_CONNECT /* The following functions are mainly exported because of mysqlbinlog; They are not for general usage */ int simple_command(MYSQL *mysql,enum enum_server_command command, const char *arg, unsigned long length, my_bool skipp_check); unsigned long net_safe_read(MYSQL* mysql); #ifdef __cplusplus } #endif #endif /* _mysql_h */ --- NEW FILE: mysql_com.h --- /* Copyright (C) 2000 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* ** Common definition between mysql server & client */ #ifndef _mysql_com_h #define _mysql_com_h #define NAME_LEN 64 /* Field/table name length */ #define HOSTNAME_LENGTH 60 #define USERNAME_LENGTH 16 #define SERVER_VERSION_LENGTH 60 #define LOCAL_HOST "localhost" #define LOCAL_HOST_NAMEDPIPE "." #if defined(__WIN__) && !defined( _CUSTOMCONFIG_) #define MYSQL_NAMEDPIPE "MySQL" #define MYSQL_SERVICENAME "MySql" #endif /* __WIN__ */ enum enum_server_command {COM_SLEEP,COM_QUIT,COM_INIT_DB,COM_QUERY, COM_FIELD_LIST,COM_CREATE_DB,COM_DROP_DB,COM_REFRESH, COM_SHUTDOWN,COM_STATISTICS, COM_PROCESS_INFO,COM_CONNECT,COM_PROCESS_KILL, COM_DEBUG,COM_PING,COM_TIME,COM_DELAYED_INSERT, COM_CHANGE_USER, COM_BINLOG_DUMP, COM_TABLE_DUMP, COM_CONNECT_OUT, COM_REGISTER_SLAVE}; #define NOT_NULL_FLAG 1 /* Field can't be NULL */ #define PRI_KEY_FLAG 2 /* Field is part of a primary key */ #define UNIQUE_KEY_FLAG 4 /* Field is part of a unique key */ #define MULTIPLE_KEY_FLAG 8 /* Field is part of a key */ #define BLOB_FLAG 16 /* Field is a blob */ #define UNSIGNED_FLAG 32 /* Field is unsigned */ #define ZEROFILL_FLAG 64 /* Field is zerofill */ #define BINARY_FLAG 128 /* The following are only sent to new clients */ #define ENUM_FLAG 256 /* field is an enum */ #define AUTO_INCREMENT_FLAG 512 /* field is a autoincrement field */ #define TIMESTAMP_FLAG 1024 /* Field is a timestamp */ #define SET_FLAG 2048 /* field is a set */ #define NUM_FLAG 32768 /* Field is num (for clients) */ #define PART_KEY_FLAG 16384 /* Intern; Part of some key */ #define GROUP_FLAG 32768 /* Intern: Group field */ #define UNIQUE_FLAG 65536 /* Intern: Used by sql_yacc */ #define REFRESH_GRANT 1 /* Refresh grant tables */ #define REFRESH_LOG 2 /* Start on new log file */ #define REFRESH_TABLES 4 /* close all tables */ #define REFRESH_HOSTS 8 /* Flush host cache */ #define REFRESH_STATUS 16 /* Flush status variables */ #define REFRESH_THREADS 32 /* Flush thread cache */ #define REFRESH_SLAVE 64 /* Reset master info and restart slave thread */ #define REFRESH_MASTER 128 /* Remove all bin logs in the index and truncate the index */ /* The following can't be set with mysql_refresh() */ #define REFRESH_READ_LOCK 16384 /* Lock tables for read */ #define REFRESH_FAST 32768 /* Intern flag */ /* RESET (remove all queries) from query cache */ #define REFRESH_QUERY_CACHE 65536 #define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */ #define REFRESH_DES_KEY_FILE 0x40000L #define REFRESH_USER_RESOURCES 0x80000L #define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */ #define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */ #define CLIENT_LONG_FLAG 4 /* Get all column flags */ #define CLIENT_CONNECT_WITH_DB 8 /* One can specify db on connect */ #define CLIENT_NO_SCHEMA 16 /* Don't allow database.table.column */ #define CLIENT_COMPRESS 32 /* Can use compression protocol */ #define CLIENT_ODBC 64 /* Odbc client */ #define CLIENT_LOCAL_FILES 128 /* Can use LOAD DATA LOCAL */ #define CLIENT_IGNORE_SPACE 256 /* Ignore spaces before '(' */ #define CLIENT_INTERACTIVE 1024 /* This is an interactive client */ #define CLIENT_SSL 2048 /* Switch to SSL after handshake */ #define CLIENT_IGNORE_SIGPIPE 4096 /* IGNORE sigpipes */ #define CLIENT_TRANSACTIONS 8192 /* Client knows about transactions */ #define SERVER_STATUS_IN_TRANS 1 /* Transaction has started */ #define SERVER_STATUS_AUTOCOMMIT 2 /* Server in auto_commit mode */ #define MYSQL_ERRMSG_SIZE 200 #define NET_READ_TIMEOUT 30 /* Timeout on read */ #define NET_WRITE_TIMEOUT 60 /* Timeout on write */ #define NET_WAIT_TIMEOUT 8*60*60 /* Wait for new query */ struct st_vio; /* Only C */ typedef struct st_vio Vio; #define MAX_CHAR_WIDTH 255 /* Max length for a CHAR colum */ #define MAX_BLOB_WIDTH 8192 /* Default width for blob */ typedef struct st_net { Vio* vio; unsigned char *buff,*buff_end,*write_pos,*read_pos; my_socket fd; /* For Perl DBI/dbd */ unsigned long max_packet,max_packet_size; unsigned int last_errno,pkt_nr,compress_pkt_nr; unsigned int write_timeout, read_timeout, retry_count; int fcntl; char last_error[MYSQL_ERRMSG_SIZE]; unsigned char error; my_bool return_errno,compress; /* The following variable is set if we are doing several queries in one command ( as in LOAD TABLE ... FROM MASTER ), and do not want to confuse the client with OK at the wrong time */ unsigned long remain_in_buf,length, buf_length, where_b; unsigned int *return_status; unsigned char reading_or_writing; char save_char; my_bool no_send_ok; gptr query_cache_query; } NET; #define packet_error (~(unsigned long) 0) enum enum_field_types { FIELD_TYPE_DECIMAL, FIELD_TYPE_TINY, FIELD_TYPE_SHORT, FIELD_TYPE_LONG, FIELD_TYPE_FLOAT, FIELD_TYPE_DOUBLE, FIELD_TYPE_NULL, FIELD_TYPE_TIMESTAMP, FIELD_TYPE_LONGLONG,FIELD_TYPE_INT24, FIELD_TYPE_DATE, FIELD_TYPE_TIME, FIELD_TYPE_DATETIME, FIELD_TYPE_YEAR, FIELD_TYPE_NEWDATE, FIELD_TYPE_ENUM=247, FIELD_TYPE_SET=248, FIELD_TYPE_TINY_BLOB=249, FIELD_TYPE_MEDIUM_BLOB=250, FIELD_TYPE_LONG_BLOB=251, FIELD_TYPE_BLOB=252, FIELD_TYPE_VAR_STRING=253, FIELD_TYPE_STRING=254, FIELD_TYPE_GEOMETRY=255 }; #define FIELD_TYPE_CHAR FIELD_TYPE_TINY /* For compability */ #define FIELD_TYPE_INTERVAL FIELD_TYPE_ENUM /* For compability */ #define net_new_transaction(net) ((net)->pkt_nr=0) #ifdef __cplusplus extern "C" { #endif int my_net_init(NET *net, Vio* vio); void my_net_local_init(NET *net); void net_end(NET *net); void net_clear(NET *net); int net_flush(NET *net); int my_net_write(NET *net,const char *packet,unsigned long len); int net_write_command(NET *net,unsigned char command,const char *packet, unsigned long len); int net_real_write(NET *net,const char *packet,unsigned long len); unsigned long my_net_read(NET *net); /* The following function is not meant for normal usage */ struct sockaddr; int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen, unsigned int timeout); struct rand_struct { unsigned long seed1,seed2,max_value; double max_value_dbl; }; #ifdef __cplusplus } #endif /* The following is for user defined functions */ enum Item_result {STRING_RESULT,REAL_RESULT,INT_RESULT}; typedef struct st_udf_args { unsigned int arg_count; /* Number of arguments */ enum Item_result *arg_type; /* Pointer to item_results */ char **args; /* Pointer to argument */ unsigned long *lengths; /* Length of string arguments */ char *maybe_null; /* Set to 1 for all maybe_null args */ } UDF_ARGS; /* This holds information about the result */ typedef struct st_udf_init { my_bool maybe_null; /* 1 if function can return NULL */ unsigned int decimals; /* for real functions */ unsigned long max_length; /* For string functions */ char *ptr; /* free pointer for function data */ my_bool const_item; /* 0 if result is independent of arguments */ } UDF_INIT; /* Constants when using compression */ #define NET_HEADER_SIZE 4 /* standard header size */ #define COMP_HEADER_SIZE 3 /* compression header extra size */ /* Prototypes to password functions */ #ifdef __cplusplus extern "C" { #endif extern unsigned long max_allowed_packet; extern unsigned long net_buffer_length; void randominit(struct rand_struct *,unsigned long seed1, unsigned long seed2); double rnd(struct rand_struct *); void make_scrambled_password(char *to,const char *password); void get_salt_from_password(unsigned long *res,const char *password); void make_password_from_salt(char *to, unsigned long *hash_res); char *scramble(char *to,const char *message,const char *password, my_bool old_ver); my_bool check_scramble(const char *, const char *message, unsigned long *salt,my_bool old_ver); char *get_tty_password(char *opt_message); void hash_password(unsigned long *result, const char *password); /* Some other useful functions */ void my_init(void); void load_defaults(const char *conf_file, const char **groups, int *argc, char ***argv); my_bool my_thread_init(void); void my_thread_end(void); #ifdef __cplusplus } #endif #define NULL_LENGTH ((unsigned long) ~0) /* For net_store_length */ #endif --- NEW FILE: mysql_embed.h --- /* Copyright (C) 2000 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* Defines that are unique to the embedded version of MySQL */ #ifdef EMBEDDED_LIBRARY /* Things we don't need in the embedded version of MySQL */ #undef HAVE_PSTACK /* No stacktrace */ #undef HAVE_DLOPEN /* No udf functions */ #undef HAVE_OPENSSL #undef HAVE_VIO #undef HAVE_ISAM #define DONT_USE_RAID #undef MYSQL_SERVER_SUFFIX #define MYSQL_SERVER_SUFFIX "-embedded" #endif /* EMBEDDED_LIBRARY */ --- NEW FILE: mysql_version.h --- /* Copyright Abandoned 1996, 1999, 2001 MySQL AB This file is public domain and comes with NO WARRANTY of any kind */ /* Version numbers for protocol & mysqld */ #ifndef _mysql_version_h #define _mysql_version_h #ifdef _CUSTOMCONFIG_ #include <custom_conf.h> #else #define PROTOCOL_VERSION 10 #define MYSQL_SERVER_VERSION "4.0.5a-beta" #ifndef MYSQL_SERVER_SUFFIX #define MYSQL_SERVER_SUFFIX "" #endif #define FRM_VER 6 #define MYSQL_VERSION_ID 40005 #define MYSQL_PORT 3306 #define MYSQL_UNIX_ADDR "/tmp/mysql.sock" #define MYSQL_CONFIG_NAME "my" /* mysqld compile time options */ #ifndef MYSQL_CHARSET #define MYSQL_CHARSET "latin1" #endif /* MYSQL_CHARSET */ #endif /* _CUSTOMCONFIG_ */ #endif /* _mysql_version_h */ |