Mysql入门系列:MYSQL客户机程序2―增加错误检查[组图]_MySQL
6.3 客户机程序2―增加错误检查
我们的第二个客户机程序将像第一个客户机程序一样,但是将修改它们,考虑错误出现的可能性。“将错误检查作为读者的练习”这样的项目在编程文献中相当常见,这或许是因为检查错误相当令人讨厌。但是,我赞同这种观点,即MySQL客户机程序应该测试错误条件
并适当地进行回应。由于某种原因,返回状态值的客户机库的调用做这些事情,而且您要承担忽略它们的后果。您最终还是要试图捕获由于没有错误检查而出现在程序中的错误,这些程序的用户会对程序运行如此不规律感到奇怪。考虑我们的程序,客户机程序1。如何知道它是否真正连接到服务器上?可以通过查看服务器的日志,找出与运行程序时间相应的Connect和Quit事件:
这条消息表示根本没有创建连接。不幸的是,客户机程序1没有告诉我们出现的这些结果。实际上它不能。它不能实现任何错误检查,所以它甚至不知道自己发生了什么事。无论如何,当然不一定必须查看日志来寻找是否能连接到服务器!让我们立刻改正它。在MySQL客户机库中返回值的例程基本上以下列两种方式之一表示成功或失败:
■ 成功时,值的指针函数返回一个非NULL 指针,失败时返回NULL(在这里NULL 的意思是“C NULL 指针”,而不是“MySQLNULL 列值”)。迄今为止,我们使用的客户机库的例程mysql_init() 和mysql_real_connect() 都用返回连接处理程序的指针来表示成功, NULL 表示失败。
■ 整型数值的函数一般成功返回0,失败返回非0。不要测试特定的非0值,如- 1。因为当失败时,并不保证客户机库函数返回任何特定的值。有时,您可能会看到像如下的较旧的错误地测试返回值的代码:
这个测试可能工作,也可能不工作。MySQLAPI 不将任何非0错误的返回指定为特定的值,而只判断它(显然地)是否为0。这个测试应该写成下面两段之一:

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









iPhone のデフォルトの地図は、Apple 独自の地理位置情報プロバイダーである Maps です。マップは改善されていますが、米国外ではうまく機能しません。 Googleマップと比べて何も提供するものはありません。この記事では、Google マップを iPhone のデフォルトの地図として使用するための実行可能な手順について説明します。 Google マップを iPhone のデフォルトの地図にする方法 Google マップを携帯電話のデフォルトの地図アプリとして設定するのは、思っているよりも簡単です。以下の手順に従ってください – 前提条件 – 携帯電話に Gmail がインストールされている必要があります。ステップ 1 – AppStore を開きます。ステップ 2 – 「Gmail」を検索します。ステップ 3 – Gmail アプリの横にある をクリックします

タスクを自動化し、複数のシステムを管理するには、ミッション計画ソフトウェアは、特にシステム管理者にとって貴重なツールです。 Windows タスク スケジューラはその仕事を完璧に実行しますが、最近多くの人がオペレーターによる要求拒否エラーを報告しています。この問題はオペレーティング システムのすべてのバージョンに存在し、広く報告され取り上げられていますが、効果的な解決策はありません。他の人にとって実際に何が役立つかを知るために読み続けてください!オペレーターまたは管理者によって拒否されたタスク スケジューラ 0x800710e0 のリクエストは何ですか?タスク スケジューラを使用すると、ユーザーの入力なしでさまざまなタスクやアプリケーションを自動化できます。これを使用して、特定のアプリケーションのスケジュールと整理、自動通知の構成、メッセージ配信の支援などを行うことができます。それ

Windows の操作性はバージョンが上がるごとにますます良くなり、ユーザー エクスペリエンスを向上させる魅力的な機能が追加されています。 Windows 10 および 11 でユーザーが検討したい機能の 1 つは、写真を顔ごとに並べ替える機能です。この機能を使用すると、顔認識を使用して友人や家族の写真をグループ化できます。楽しそうですよね?この機能を活用する方法については、以下をお読みください。 Windows で写真を顔ごとにグループ化できますか?はい、Windows 10 および 11 では、フォト アプリを使用して顔ごとに写真をグループ化できます。ただし、この機能は写真アプリのバージョンでは利用できません。さらに、[人物] タブを使用して、これらの写真を連絡先にリンクできます。したがって、この機能を使用すると、

携帯電話に時計アプリがありませんか?日付と時刻は iPhone のステータス バーに引き続き表示されます。ただし、時計アプリがないと、世界時計、ストップウォッチ、目覚まし時計、その他多くの機能を使用できません。したがって、見つからない時計アプリを修正することは、やるべきことリストの一番上に置く必要があります。これらの解決策は、この問題の解決に役立ちます。解決策 1 – 時計アプリを配置する 誤って時計アプリをホーム画面から削除した場合は、時計アプリを元の場所に戻すことができます。ステップ 1 – iPhone のロックを解除し、App ライブラリ ページに到達するまで左にスワイプを開始します。ステップ 2 – 次に、検索ボックスで「時計」を検索します。ステップ 3 – 検索結果に以下の「時計」が表示されたら、それを長押しして、

C++ は広く使用されているプログラミング言語で、カウントダウン プログラムを作成するのに非常に便利で実用的です。カウントダウン プログラムは、非常に正確な時間計算とカウントダウン機能を提供する一般的なアプリケーションです。この記事では、C++ を使用して簡単なカウントダウン プログラムを作成する方法を紹介します。カウントダウン プログラムを実装する鍵は、タイマーを使用して時間の経過を計算することです。 C++ では、time.h ヘッダー ファイル内の関数を使用してタイマー関数を実装できます。以下は、単純なカウントダウン プログラムのコードです。

毎日ほぼ同じ時間に同じ Web サイトに頻繁にアクセスしますか?これにより、日常のタスクを実行する際に、複数のブラウザー タブを開いたまま長時間を費やし、ブラウザーが乱雑になる可能性があります。では、ブラウザを手動で起動せずに開いてみてはどうでしょうか?以下に示すように、これは非常にシンプルで、サードパーティのアプリをダウンロードする必要はありません。 Web サイトを開くためにタスク スケジューラを設定するにはどうすればよいですか?キーを押し、検索ボックスに「タスク スケジューラ」と入力し、[開く] をクリックします。 Windows 右側のサイドバーで、「基本タスクの作成」オプションをクリックします。 「名前」フィールドに、開きたい Web サイトの名前を入力し、「次へ」をクリックします。次に、「トリガー」で「時間頻度」をクリックし、「次へ」をクリックします。イベントを繰り返す時間を選択し、「次へ」をクリックします。有効を選択します

アプリを使用しようとすると、「カメラとマイクへのアクセスを許可できません」というメッセージが表示されますか?通常、カメラとマイクのアクセス許可は、必要に応じて特定の人に付与します。ただし、許可を拒否すると、カメラとマイクは機能しなくなり、代わりにこのエラー メッセージが表示されます。この問題の解決は非常に基本的なもので、1 ~ 2 分で解決できます。解決策 1 – カメラ、マイクの権限を提供する 必要なカメラとマイクの権限を設定で直接提供できます。ステップ 1 – [設定] タブに移動します。ステップ 2 – [プライバシーとセキュリティ] パネルを開きます。ステップ 3 – そこで「カメラ」権限をオンにします。ステップ 4 – 内部には、携帯電話のカメラの許可を要求したアプリのリストが表示されます。ステップ5 – 指定したアプリの「カメラ」を開きます

正方行列 M[r][c] が与えられると、「r」は特定の行数、「c」は r=c となる列です。「M」が単位行列であるかどうかを確認する必要があります。恒等行列恒等行列は、以下の例のように、対角要素の整数値が 1 で、非対角要素の整数値が 0 であるサイズ nxn の正方行列の恒等行列としても知られています-$$I1=\ begin {bmatrix}1\end{bmatrix},\I2=\begin{bmatrix}1&0\0&1\end{bmatrix},\I3=\begin{bmatrix}1&0&0\0&1&0\0&
