Skip to content

Commit e55d640

Browse files
authored
ODBC 3.0 (#217)
* Add files via upload OOAPI implementation, smoke tested * Upgrade major version -> 3 * Patches for MSVC build + some bugfixes * SQL statement input parameters issue fix * revert last erratic commit * Fix HEAP CORRUPTION issues in Sqlda dtor * Minor fixes * Windows installer fixes * Help generator fix & manifest * Fixes many problems) * Fix some warnings * Implement stl containers, fix sanitizer error * Fix retaining transactions & lite refactoring * static cursor lite refactoring * Static cursor deep refactoring get rid of malloc/calloc/new/free/delete. Using stl instead. * Issue #210 fix + additional bugfixes 1. Issue #210 MS Access connectivity 2. Fix in static cursor, blobs issue 3. readFromSystemCatalog() regress fixed 4. Metadata rebuild/restore refactoring * Issue #211 fix (win installer) 1. Replace the same version dll 2. Confirmation dialog * Cumulative fix * Issue #121 fix Driver detects MSAccess automatically and applies the patch. * c++17 standard required * SQL arrays magic * #207 issue fix {fn SUBSTRING(A,B[,C])} is working ok now * Set buildnum to 3 * Substring fix+refactoring & expand META IDs 1. Substring() works more accurate way 2. Meta IDs are expanded from 31->63 everywhere. 3. Build number 3.0.0.4 * Issue #207 ODBC string functions. Build 3.0.0.5 * Issue #207: SPACE() fn. Build 3.0.0.6 * Fix Issue#216: PowerBI crashes. Build 3.0.0.7. Inspired by #201 solution (c) @aafemt * Issue #214 : New FB4-5 types compatibility. Build 3.0.0.8 Attention! Since decfloats, int128, etc types are still not supported by ODBC standard, this patch does NOT implement a complete new FB types integration, but only allows to use them in compatibility mode. The solution is that ODBC driver automatically adds "set bind of ... to legacy" directives on DB attachment. - int128-like types are binded as varchar; - decfloats are binded as double prec (pure legacy); - with-time-zone types are binded as without timezone (pure legacy). * use isc_dpb_set_bind instead of direct sql cmds * Add binding compat option to DSN settings. Build 3.0.0.9 [related to Issue #214] * EnableCompatBind prop fix * Create msbuild.yml * FB headers added to repo for auto build * Fix res/resource.it - remove BOM & spec. symbols * Update msbuild.yml - platform added * Win32 installer scripts refact * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Fix MakePackage.bat for automation * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Update msbuild.yml * Issue #204: WireCompression support * Update Readme.txt (known issues section) * Update README.md * Docs for 3.0 release * Fixes for proper Linux build * Issue#73: SQL_ATTR_MAX_ROWS fix * Update ChangeLog_v3.0 * Create linux.yml for linux build action * Update linux.yml * Update linux.yml * Update WriteBuildNo.h Set buildno=11 * Update README.md * Update README.md -> add actions status
1 parent f1e6e90 commit e55d640

File tree

145 files changed

+42793
-1987
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

145 files changed

+42793
-1987
lines changed

.github/workflows/linux.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Linux
2+
3+
on:
4+
push:
5+
branches: [ "feature_ooapi" ]
6+
7+
permissions:
8+
contents: read
9+
10+
jobs:
11+
build:
12+
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Install UnixODBC package
19+
run: sudo apt-get install -y unixodbc unixodbc-dev
20+
21+
- name: Go to build folder & make
22+
working-directory: ${{env.GITHUB_WORKSPACE}}
23+
run: |
24+
cd Builds/Gcc.lin
25+
cp makefile.linux makefile
26+
make
27+
28+
- uses: actions/upload-artifact@v4
29+
with:
30+
name: linux_libs
31+
path: ./Builds/Gcc.lin/Release_*

.github/workflows/msbuild.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# This workflow uses actions that are not certified by GitHub.
2+
# They are provided by a third-party and are governed by
3+
# separate terms of service, privacy policy, and support
4+
# documentation.
5+
6+
name: MSBuild
7+
8+
on:
9+
push:
10+
branches: [ "feature_ooapi" ]
11+
#pull_request:
12+
# branches: [ "feature_ooapi" ]
13+
14+
env:
15+
# Path to the solution file relative to the root of the project.
16+
SOLUTION_FILE_PATH: ./Builds/MsVc2022.win/OdbcFb.sln
17+
18+
# Configuration type to build.
19+
# You can convert this to a build matrix if you need coverage of multiple configuration types.
20+
# https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
21+
BUILD_CONFIGURATION: Release
22+
23+
INNO_SETUP_PATH: 'C:\Program Files (x86)\Inno Setup 6'
24+
25+
permissions:
26+
contents: read
27+
28+
jobs:
29+
build:
30+
runs-on: windows-latest
31+
32+
steps:
33+
- uses: actions/checkout@v3
34+
35+
- name: Add MSBuild to PATH
36+
uses: microsoft/[email protected]
37+
38+
- name: Install html-help-workshop, sed, innosetup
39+
run: |
40+
choco install html-help-workshop
41+
choco install sed
42+
choco install innosetup
43+
44+
- name: Restore NuGet packages
45+
working-directory: ${{env.GITHUB_WORKSPACE}}
46+
run: nuget restore ${{env.SOLUTION_FILE_PATH}}
47+
48+
- name: Stub
49+
working-directory: ${{env.GITHUB_WORKSPACE}}
50+
run: |
51+
#cd "C:\Program Files (x86)\"
52+
#dir
53+
env
54+
55+
- name: Build win32
56+
working-directory: ${{env.GITHUB_WORKSPACE}}
57+
# Add additional options to the MSBuild command line here (like platform or verbosity level).
58+
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
59+
run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} /p:Platform=Win32 ${{env.SOLUTION_FILE_PATH}}
60+
61+
- name: Build x64
62+
working-directory: ${{env.GITHUB_WORKSPACE}}
63+
# Add additional options to the MSBuild command line here (like platform or verbosity level).
64+
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
65+
run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} /p:Platform=x64 ${{env.SOLUTION_FILE_PATH}}
66+
67+
- name: Build InnoSetup installers
68+
working-directory: ${{env.GITHUB_WORKSPACE}}
69+
run: |
70+
cd Install\Win32
71+
dir
72+
./MakePackage.bat
73+
./MakePackage.bat WIN32
74+
75+
- name: VirusTotal Scan
76+
uses: crazy-max/ghaction-virustotal@v4
77+
id: virustotal_scan
78+
with:
79+
#vt_api_key: ${{ secrets.VT_API_KEY }}
80+
vt_api_key: effc35cbb3eb35975d5cf74eee8b75a1a1b12b6af0d66ed2a65cba48becaecc0
81+
files: |
82+
./Install/Win32/install_image/*_Win32.exe
83+
./Install/Win32/install_image/*_x64.exe
84+
85+
- name: Upload artefacts
86+
run: |
87+
echo "${{ steps.virustotal_scan.outputs.analysis }}" > ./Install/Win32/install_image/VirusTotalScan.txt
88+
- uses: actions/upload-artifact@v4
89+
with:
90+
name: win_installers
91+
path: ./Install/Win32/install_image/

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
Builds/*/Win32/
22
Builds/*/x64/
3+
Builds/*/.vs/
34
Install/Win32/install_image/
45
*.suo
56
*.ncb
67
*.user
78
*.chm
89
build_*.log
9-
OdbcJdbcSetup_*.iss
10+
OdbcJdbcSetup_*.iss

Builds/Gcc.lin/makefile.linux

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ GCC = g++
3030

3131
#Override default variables for this build
3232
#ARCH = x86
33-
#FIREBIRD=/usr/lib64/firebird
33+
FIREBIRD=../../FBClient.Headers
3434

3535
# Get version info
3636
MAJOR_VERSION = $(shell cat ../../SetupAttributes.h | grep "define MAJOR_VERSION" | cut -f 3)

Builds/Gcc.lin/readme.linux

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
1+
====== ODBC v3.0 driver notes ======================================
2+
3+
Version 3.0 has no significant changes to the build sequence compared to the previous version.
4+
However, to build from source, you should use C++17.
5+
6+
How to build:
7+
* Make sure you have Unix ODBC dev package installed. If not - install it (for example: `sudo apt install unixodbc-dev` for Ubuntu)
8+
* Move to Builds/Gcc.lin
9+
* Rename makefile.linux -> makefile
10+
* Set the DEBUG var if you need a Debug build instead of Release (by default)
11+
* Run `make`
12+
* Your libraries are in ./Release_<arch> or ./Debug_<arch> folder.
13+
14+
===
15+
16+
117
1)==================================================================
218
For connect from unixODBC :
319

Builds/MsVc2022.win/OdbcFb.sln

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
Microsoft Visual Studio Solution File, Format Version 12.00
2+
# Visual Studio Version 17
3+
VisualStudioVersion = 17.6.33815.320
4+
MinimumVisualStudioVersion = 10.0.40219.1
5+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdbcFb", "OdbcFb.vcxproj", "{C6127398-654D-4196-B8C1-5BB32D75D7FD}"
6+
EndProject
7+
Global
8+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
9+
Debug|Win32 = Debug|Win32
10+
Debug|x64 = Debug|x64
11+
Release|Win32 = Release|Win32
12+
Release|x64 = Release|x64
13+
EndGlobalSection
14+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
15+
{C6127398-654D-4196-B8C1-5BB32D75D7FD}.Debug|Win32.ActiveCfg = Debug|Win32
16+
{C6127398-654D-4196-B8C1-5BB32D75D7FD}.Debug|Win32.Build.0 = Debug|Win32
17+
{C6127398-654D-4196-B8C1-5BB32D75D7FD}.Debug|x64.ActiveCfg = Debug|x64
18+
{C6127398-654D-4196-B8C1-5BB32D75D7FD}.Debug|x64.Build.0 = Debug|x64
19+
{C6127398-654D-4196-B8C1-5BB32D75D7FD}.Release|Win32.ActiveCfg = Release|Win32
20+
{C6127398-654D-4196-B8C1-5BB32D75D7FD}.Release|Win32.Build.0 = Release|Win32
21+
{C6127398-654D-4196-B8C1-5BB32D75D7FD}.Release|x64.ActiveCfg = Release|x64
22+
{C6127398-654D-4196-B8C1-5BB32D75D7FD}.Release|x64.Build.0 = Release|x64
23+
EndGlobalSection
24+
GlobalSection(SolutionProperties) = preSolution
25+
HideSolutionNode = FALSE
26+
EndGlobalSection
27+
GlobalSection(ExtensibilityGlobals) = postSolution
28+
SolutionGuid = {A4C550A6-7D81-4A2D-B5B4-ABBCBD76197E}
29+
EndGlobalSection
30+
EndGlobal

0 commit comments

Comments
 (0)