You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: azure-sql/database/elastic-pool-manage.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -113,4 +113,4 @@ To create and manage SQL Database elastic pools and pooled databases, use these
113
113
114
114
## Related content
115
115
116
-
- To learn more about design patterns for SaaS applications using elastic pools, see [Design Patterns for Multi-tenant SaaS Applications with Azure SQL Database](saas-tenancy-app-design-patterns.md).
116
+
- To learn more about design patterns for SaaS applications using elastic pools, see [Design Patterns for multitenant SaaS Applications with Azure SQL Database](saas-tenancy-app-design-patterns.md).
Copy file name to clipboardExpand all lines: azure-sql/database/elastic-scale-shard-map-management.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,11 +39,11 @@ For a single-tenant model, create a **list-mapping** shard map. The single-tenan
39
39
40
40
:::image type="content" source="media/elastic-scale-shard-map-management/listmapping.png" alt-text="Diagram of List mapping.":::
41
41
42
-
The multi-tenant model assigns several tenants to an individual database (and you can distribute groups of tenants across multiple databases). Use this model when you expect each tenant to have small data needs. In this model, assign a range of tenants to a database using **range mapping**.
42
+
The multitenant model assigns several tenants to an individual database (and you can distribute groups of tenants across multiple databases). Use this model when you expect each tenant to have small data needs. In this model, assign a range of tenants to a database using **range mapping**.
43
43
44
44
:::image type="content" source="media/elastic-scale-shard-map-management/rangemapping.png" alt-text="Diagram of Range mapping.":::
45
45
46
-
Or you can implement a multi-tenant database model using a *list mapping* to assign multiple tenants to an individual database. For example, DB1 is used to store information about tenant ID 1 and 5, and DB2 stores data for tenant 7 and tenant 10.
46
+
Or you can implement a multitenant database model using a *list mapping* to assign multiple tenants to an individual database. For example, DB1 is used to store information about tenant ID 1 and 5, and DB2 stores data for tenant 7 and tenant 10.
47
47
48
48
:::image type="content" source="media/elastic-scale-shard-map-management/multipleonsingledb.png" alt-text="Diagram of Multiple tenants on single DB.":::
Copy file name to clipboardExpand all lines: azure-sql/database/saas-tenancy-app-design-patterns.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -80,7 +80,7 @@ The vendor can access all the databases in all the standalone app instances, eve
80
80
81
81
This next pattern uses a multitenant application with many databases, all being single-tenant databases. A new database is provisioned for each new tenant. The application tier is scaled *up* vertically by adding more resources per node. Or the app is scaled *out* horizontally by adding more nodes. The scaling is based on workload, and is independent of the number or scale of the individual databases.
82
82
83
-
:::image type="content" source="media/saas-tenancy-app-design-patterns/saas-multi-tenant-app-database-per-tenant.png" alt-text="Diagram of the design of a multi-tenant app with database-per-tenant.":::
83
+
:::image type="content" source="media/saas-tenancy-app-design-patterns/saas-multi-tenant-app-database-per-tenant.png" alt-text="Diagram of the design of a multitenant app with database-per-tenant.":::
84
84
85
85
### Customize for a tenant
86
86
@@ -92,7 +92,7 @@ With database-per-tenant, customizing the schema for one or more individual tena
92
92
93
93
When databases are deployed in the same resource group, they can be grouped into elastic pools. The pools provide a cost-effective way of sharing resources across many databases. This pool option is cheaper than requiring each database to be large enough to accommodate the usage peaks that it experiences. Even though pooled databases share access to resources they can still achieve a high degree of performance isolation.
94
94
95
-
:::image type="content" source="media/saas-tenancy-app-design-patterns/saas-multi-tenant-app-database-per-tenant-pool.png" alt-text="Diagram of the design of multi-tenant app with database-per-tenant, using elastic pool.":::
95
+
:::image type="content" source="media/saas-tenancy-app-design-patterns/saas-multi-tenant-app-database-per-tenant-pool.png" alt-text="Diagram of the design of multitenant app with database-per-tenant, using elastic pool.":::
96
96
97
97
Azure SQL Database provides the tools necessary to configure, monitor, and manage the sharing. Both pool-level and database-level performance metrics are available in the Azure portal, and through Azure Monitor logs. The metrics can give great insights into both aggregate and tenant-specific performance. Individual databases can be moved between pools to provide reserved resources to a specific tenant. These tools enable you to ensure good performance in a cost effective manner.
98
98
@@ -141,7 +141,7 @@ Management operations that are focused on individual tenants are more complex to
141
141
142
142
Most SaaS applications access the data of only one tenant at a time. This access pattern allows tenant data to be distributed across multiple databases or shards, where all the data for any one tenant is contained in one shard. Combined with a multitenant database pattern, a sharded model allows almost limitless scale.
143
143
144
-
:::image type="content" source="media/saas-tenancy-app-design-patterns/saas-multi-tenant-app-sharded-multi-tenant-databases.png" alt-text="Diagram of the design of a multi-tenant app with sharded multi-tenant databases.":::
144
+
:::image type="content" source="media/saas-tenancy-app-design-patterns/saas-multi-tenant-app-sharded-multi-tenant-databases.png" alt-text="Diagram of the design of a multitenant app with sharded multitenant databases.":::
@@ -24,16 +24,27 @@ public java.sql.Statement createStatement(int resultSetType,
24
24
int resultSetConcurrency)
25
25
```
26
26
27
-
#### Parameters
28
-
*resultSetType*
29
-
30
-
The **int** value representing the result set type.
31
-
32
-
*resultSetConcurrency*
33
-
34
-
The **int** value representing the result set concurrency type.
27
+
#### Parameters
28
+
*resultSetType*
29
+
30
+
The **int** value representing the result set type. Use one of the following `java.sql.ResultSet` constants:
31
+
32
+
| Constant | Description |
33
+
|---|---|
34
+
|`ResultSet.TYPE_FORWARD_ONLY`| Cursor moves forward only. Best performance for sequential reads. |
35
+
|`ResultSet.TYPE_SCROLL_INSENSITIVE`| Scrollable result set that doesn't reflect changes made to the underlying data after the result set is created. |
36
+
|`ResultSet.TYPE_SCROLL_SENSITIVE`| Scrollable result set that reflects changes made to the underlying data. |
37
+
38
+
*resultSetConcurrency*
39
+
40
+
The **int** value representing the result set concurrency type. Use one of the following `java.sql.ResultSet` constants:
41
+
42
+
| Constant | Description |
43
+
|---|---|
44
+
|`ResultSet.CONCUR_READ_ONLY`| The result set can't be updated. |
45
+
|`ResultSet.CONCUR_UPDATABLE`| The result set can be updated by using positioned updates and deletes. |
35
46
36
-
## Return Value
47
+
## Return value
37
48
The Statement object.
38
49
39
50
## Exceptions
@@ -42,9 +53,8 @@ public java.sql.Statement createStatement(int resultSetType,
42
53
## Remarks
43
54
This createStatement method is specified by the createStatement method in the java.sql.Connection interface.
The following tables list the members that are exposed by the [SQLServerDatabaseMetaData](../../../connect/jdbc/reference/sqlserverdatabasemetadata-class.md) class.
16
-
15
+
The following tables list the members that are exposed by the [SQLServerDatabaseMetaData](../../../connect/jdbc/reference/sqlserverdatabasemetadata-class.md) class.
16
+
17
+
> [!TIP]
18
+
> To use these methods, first obtain a `DatabaseMetaData` object from an active connection:
Copy file name to clipboardExpand all lines: docs/connect/odbc/linux-mac/install-microsoft-odbc-driver-sql-server-macos.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,9 +21,11 @@ This article explains how to install the Microsoft ODBC Driver for SQL Server on
21
21
22
22
This article provides commands for installing the ODBC driver from the bash shell. If you want to download the packages directly, see [Download ODBC Driver for SQL Server](../download-odbc-driver-for-sql-server.md).
23
23
24
-
> [!NOTE]
25
-
> The Microsoft ODBC driver for SQL Server on macOS is only supported on the x64 architecture through version 17.7. Apple ARM64 support was added starting with version 17.8. The architecture will be detected and the correct package will be automatically installed by the Homebrew formula. If your command prompt is running in x64 emulation mode on ARM64, the x64 package will be installed. If you're not running in emulation mode in your command prompt, the ARM64 package will be installed.
24
+
> [!NOTE]
25
+
> The Microsoft ODBC driver for SQL Server on macOS is only supported on the x64 architecture through version 17.7. Apple ARM64 (M1, M2, M3, and later Apple Silicon chips) support was added starting with version 17.8. The Homebrew formula detects the architecture and automatically installs the correct package. If your command prompt is running in x64 emulation mode on ARM64, the x64 package is installed. If you aren't running in emulation mode, the ARM64 package is installed.
26
26
> Additionally, the Homebrew default directory changed with the ARM64 architecture, to `/opt/homebrew`. The paths in the [Driver files](#driver-files) section use the x64 Homebrew paths, which default to `/usr/local`, so your file paths will vary accordingly.
27
+
>
28
+
> The Microsoft ODBC driver for macOS is designed to work with **unixODBC** (installed by Homebrew). If you use **iODBC** as your driver manager, you might encounter architecture mismatch errors such as `incompatible architecture (have 'arm64', need 'x86_64')`. To resolve this issue, use unixODBC instead of iODBC. Homebrew automatically installs unixODBC as a dependency of the `msodbcsql18` package.
> Azure Linux 3.0 includes the Microsoft packages repository by default. You don't need to manually configure the repository before you install the driver. If your Azure Linux image uses `tdnf` as the package manager, the following commands work directly.
If uninstalling by using the `odbcinst` command fails, you can manually remove driver sections from the `odbcinst.ini` file. You can find the location of the `odbcinst.ini` file by using the command `odbcinst -j`.
737
742
743
+
### Package download errors on Debian and Ubuntu
744
+
745
+
On Debian-based distributions, you might see the following error when you install the `packages-microsoft-prod.deb` package:
746
+
747
+
```output
748
+
dpkg-deb: error: 'packages-microsoft-prod.deb' is not a Debian format archive
749
+
```
750
+
751
+
This error typically means the downloaded file is corrupted or incomplete, often caused by a network interruption or proxy issue. To resolve the problem:
752
+
753
+
1. Delete the corrupted file and download it again. For Ubuntu:
If you can't make a connection to SQL Server by using the ODBC driver, see the known issues article on [troubleshooting connection problems](known-issues-in-this-version-of-the-driver.md#connectivity).
To test your installation, see [Testing your installation](#testing-your-installation) at the end of this document.
484
484
485
-
## Testing Your Installation
485
+
## Testing your installation
486
486
487
487
To test this sample script, create a file called testsql.php in your system's document root. This path is `/var/www/html/` on Ubuntu, Debian, and Red Hat, `/srv/www/htdocs` on SUSE, `/var/www/localhost/htdocs` on Alpine, or `/usr/local/var/www` on macOS. Copy the following script to it, replacing the server, database, username, and password as appropriate.
488
488
@@ -600,10 +600,8 @@ php testsql.php
600
600
601
601
If running from the command line is successful but nothing shows in your browser, check the [Apache log files](https://linuxize.com/post/apache-log-files/#location-of-the-log-files). For more help, see [Support resources](support-resources-for-the-php-sql-driver.md) for places to go.
602
602
603
-
## See Also
603
+
## Related content
604
604
605
-
[Getting Started with the Microsoft Drivers for PHP for SQL Server](../../connect/php/getting-started-with-the-php-sql-driver.md)
606
-
607
-
[Loading the Microsoft Drivers for PHP for SQL Server](../../connect/php/loading-the-php-sql-driver.md)
608
-
609
-
[System Requirements for the Microsoft Drivers for PHP for SQL Server](../../connect/php/system-requirements-for-the-php-sql-driver.md)
605
+
-[Getting Started with the Microsoft Drivers for PHP for SQL Server](../../connect/php/getting-started-with-the-php-sql-driver.md)
606
+
-[Loading the Microsoft Drivers for PHP for SQL Server](../../connect/php/loading-the-php-sql-driver.md)
607
+
-[System Requirements for the Microsoft Drivers for PHP for SQL Server](../../connect/php/system-requirements-for-the-php-sql-driver.md)
0 commit comments