問題タブ [freetds]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1115 参照

perl - FreeTDSはDBD::Sybaseのメモリを使い果たします

追加すると

freetds.confファイルに対して、DBD::Sybaseプログラムは以下を発行します。

そして終了します。これは、ntextフィールドを返すSQLクエリステートメントでexecute()を呼び出すと発生します。数値データ、日時、およびnvarcharsを問題なく返すことができますが、出力フィールドの1つがntextである場合は常に、このエラーが発生します。

これらのクエリはすべて、UTF-8設定がなくても完全に正常に機能しますが、デフォルトの文字セットで警告をスローする一部の文字を処理する必要があります。(関連する質問を参照してください。)

エラーメッセージは、他のDBD::Sybaseエラーメッセージがフォーマットされているように見えるのと同じようにフォーマットされていません。ただし、rollback()が発行されているというメッセージが表示されます。(私の誤ったAutoCommitフラグは尊重されています。)FreeTDSがiconvプログラムを使用して文字セット間を変換していることをどこかで読んだと思います。このメッセージがiconvから送信されている可能性はありますか?

tsql(FreeTDSのコマンドラインSQLシェル)で同じfreetds.conf設定を使用して同じクエリを実行しても、エラーは発生しません。

SQLServerに接続しています。

これらのクエリを正常に返すには、何をする必要がありますか?

0 投票する
2 に答える
2925 参照

sql-server - Linux での Django-pyodbc SQL Server/freetds サーバー接続の問題

エラー: ('IM002', '[IM002] [unixODBC][ドライバー マネージャー] データ ソース名が見つからず、既定のドライバーが指定されていません (0) (SQLDriverConnectW)')

Windows 開発マシンでの開発から本番環境の Linux マシンに移行していますが、freetds ドライバーに問題があります。私が知る限り、エラーメッセージはドライバーが見つからないことを意味します。sqsh と tsql を介して cli 経由で接続できます。そのようにsettings.pyをセットアップしました。

djangoでSQL Serverの経験がある人はいますか? DNS を使用する必要がありますか? (どのようにフォーマットしますか?)

0 投票する
3 に答える
4563 参照

python - Python-Linux-Windowsクレデンシャルを使用したMSSQLへの接続-FreeTDS+UnixODBC+pyodbcまたはpymssql

これを設定するための優れた手順はないようです。誰か良い指示がありますか?私はLinuxの初心者なので、優しくしてください。私は似たような 別の投稿を見ましたが、本当の答えはありません。

私にはいくつか問題があります。

  1. FreeTDSは機能しているようには見えません。接続しようとすると、「tsql」コマンドを使用して次のメッセージが表示されます。「デフォルトのデータベースがdatabaseNameに設定されています。サーバーへの接続に問題がありました」が、問題の内容が記載されていません。

    1. pyodbcを使用して接続しようとすると、次のエラーが発生します。 "pyodbc.Error:( '08S01'、'[08S01] [unixODBC] [FreeTDS] [SQL Server]接続できません:Adaptive Serverが使用できないか、存在しません( 20009)(SQLDriverConnectW)') "

    2. pymssqlで似たようなことを試しましたが、似たような問題が発生しました。接続できないエラーが発生し続けますが、理由がわかりません。

0 投票する
2 に答える
7721 参照

sql-server - FREETDS および UNIXODBC 文字変換

修正すべきエラーがあります。これは:

トルコ語の文字を使用して挿入すると、このエラーが発生します。私の質問は、その変換を無効にするにはどうすればよいですか? freetdsとunixodbcを介してSQLサーバーに接続しています。

ありがとう..

0 投票する
3 に答える
983 参照

python - mssqlを使用した0.6移行でのsqlalchemy日付タイプ

Linux ubuntu 10.04で、pyodbc、FreeTDS odbcドライバー、mssqlサーバーに接続しています。

Sqlalchemy0.5はフィールドに使用DATETIMEsqlalchemy.Date()ます。

現在、Sqlalchemy 0.6はを使用DATEしていますが、SQLServer2000にはタイプがありませんDATE。sqlalchemy 0.6方言DATETIMEのデフォルトにするにはどうすればよいですか?sqlalchemy.Date()mssql+pyodbc

できるだけきれいに保ちたいです。

問題を再現するためのコードは次のとおりです。

そして、これが私が得ているトレースバックです:

0 投票する
1 に答える
1380 参照

python - SQLサーバー関数のネイティブパラメータバインドエラー

データベースに接続するために、Ubuntu 10.04 Lucid LTS で次のソフトウェア スタックを使用しています。

  1. python 2.6.5 (ubuntu パッケージ)
  2. pyodbc git トランク コミットeb545758079a743b2e809e2e219c8848bc6256b2
  3. unixodbc 2.2.11 (ubuntu パッケージ)
  4. freetds 0.82 (ubuntu パッケージ)
  5. Windows と Microsoft SQL Server 2000 (8.0)

SQL SERVER 関数への引数でネイティブ パラメーター バインドを実行しようとすると、次のエラーが発生します。

再現コードは次のとおりです。

これで関数が作成されました。クエリで値を直接使用して呼び出そうとすると (値のネイティブ バインドはありません)、正常に動作します。

ただし、ネイティブ バインドを実行しようとすると、上記のエラーが発生します (パラメーター プレースホルダーを使用して値を個別に渡すことにより)。

さらなる調査により、私が関連付けたいいくつかの奇妙なことが明らかになりました。

  • TDS バージョンを 4.2 に変更すると、すべて正常に動作します (ただし、SQL Server からのバージョン レポートは間違っています。実際のバージョンではなく、4.2取得した TDS バージョンを 使用します)。'95.08.0255''08.00.0760'
  • 他の 2 種類の関数については、すべて正常に動作します。値を返す関数と、単なる SELECT クエリ (ビューなど) の関数の両方が正常に動作します。他の (壊れた) 関数に対するクエリの結果を返す新しい関数を定義することもできます。これにより、パラメータに対してネイティブ バインドを実行する場合でも、すべてが機能します。例えば:CREATE FUNCTION fn_tempFunc(@testparam varchar(4)) RETURNS TABLE AS RETURN (SELECT * FROM fn_FuncTest(@testparam))
  • このエラーの後、接続が非常に不安定になり、回復できなくなります。
  • 任意のタイプのデータをバインドしようとすると、エラーが発生します。

どうすればこれをさらに追求できますか?関数パラメーターへのネイティブ バインドを行いたいと思います。

0 投票する
2 に答える
2924 参照

python - Pythonでアカウンティングを行うためのベストプラクティス

精度を失うことなく金額を合計する必要があるweb2pyアプリケーションを書いています。これにはDecimalsを使用する必要があることに気付きましたが、データベースから取得したすべての数値を次のようにラップする必要があることに気付きました。

Decimal(str(myval))

それをすべてのコードに追加することに夢中になる前に、もっと良い方法はありますか?私はPythonを初めて使用するので、明らかなことを見落としている可能性が非常に高くなります。

編集:私のデータベースはMS SQL Serverであり、SQL Servermoneyフィールドに金額を格納しています(実装はDecimalに類似していると思います。つまり、浮動小数点ではなく整数演算です)。

web2pyフレームワーク(pyodbcSQL Server接続に使用)を介してデータベースに接続しています。web2pyは10進型をある程度サポートしていると思います。たとえば、私のweb2pyフィールド定義は次のようになります。ただし、web2pyのメソッドField('Amount','decimal(19,4)') を使用してデータベースから値を返すと、値は。ではなくaとして返されます。.executesqlfloatDecimal

編集:これはFreeTDSとMSSQLServerの問題のようです。Massimoがコメントで述べたように、web2pyはこれを適切にサポートし、Decimalを返します(可能な場合)。これは私の実稼働環境(Linux)でのみ問題であることがわかりました。FreeTDSドライバーを使用してMSSQLに接続していますが、MSSQLマネータイプをPythonフロートに変換しているようです。

アレックス・マルテッリの答えは正しい方向を向いていると思います。FreeTDS、MS SQL、Pythonの経験はありますか?これはおそらくそれ自体の質問に値すると思うので、この議論を移動します...(ここに投稿された新しい質問:MSSQLマネータイプをDecimalではなくpythonfloatに変換するFreeTDS )

更新:実際、FreeTDSにはバグがありました。これは、2010年8月4日の時点で、FreeTDS のCVSヘッドで修正されました。

0 投票する
2 に答える
1187 参照

python - FreeTDSは、MSSQLのマネータイプをDecimalではなくpythonfloatに変換します

LinuxのPythonからMSSQLServerデータベースに接続しています。FreeTDSドライバーを使用してpyodbc経由で接続しています。MSSQLからmoneyフィールドを返すと、Python Decimalではなく、floatとして表示されます。

問題はFreeTDSにあります。Windowsからまったく同じPythonコードを実行すると(FreeTDSを使用する必要がない場合)、pyodbcはPythonDecimalを返します。

Linuxでコードを実行しているときにPythonDecimalを取り戻すにはどうすればよいですか?

0 投票する
2 に答える
2220 参照

php - PHP MSSQLUnixドライバー-MicrosoftまたはFreeTDS

LAMPサーバーを実行していますが、MS SQL(クライアント要求)に接続する必要があります。Microsoftにドライバーがあると聞きましたが、確認できません

MicrosoftドライバーがUnixで利用できるかどうか誰かが知っていますか?そうでない場合は、FreeTDSを使用する必要がありますか?これはPHPによって推奨されているようですが、インストールドキュメントが不足しているようです。どちらの方向でも大歓迎です。

一般的な質問で申し訳ありませんが、私はPHPドライバーの設定に慣れていません。

アップデート

ちょっとした裏話として、私はLAMPサーバーからイントラネットを実行していますが、外部のMS SQL DBサーバー(もちろんWindows)のデータソースに接続する必要があります。PHP5を実行しています。

0 投票する
1 に答える
655 参照

zend-framework - Zend_DbがSybaseBITデータ型フィールド値を引用しないようにします

Sybaseデータベースに対してPdo_Mssqlアダプターを使用しており、発生した問題を回避しています。残っている厄介な問題の1つは、BITフィールド値の引用に関するZend_Dbのインスタンスです。挿入のために以下を実行する場合:

$ row = $ this-> createRow(); ... $ row-> MyBitField = $ data ['MyBitField']; ... $ row-> save();

FreeTDSログ出力は次のことを示しています。

dbutil.c:87:msgno 257:"データ型'VARCHAR'から'BIT'への暗黙の変換は許可されていません。CONVERT関数を使用してこのクエリを実行してください。

値をintおよびboolとしてキャストしようとしましたが、これはテーブルメタデータの問題であり、入力のデータ型の問題ではないようです。

幸い、Zend_Db_Exprはうまく機能します。以下は動作しますが、データベースサーバーに依存しないようにしたいと思います。

$ row-> MyBitField = new Zend_Db_Expr( "CONVERT(BIT、{$ data ['MyBitField']})");

describeTable()がフィールドのBITを返していることを確認しました。ZFにMSSQL/ Sybase BITフィールドの引用を停止させる方法に関するアイデアはありますか?