Maison base de données tutoriel mysql 嵌入式SQL与主语言的通信_MySQL

嵌入式SQL与主语言的通信_MySQL

Jun 01, 2016 pm 01:51 PM
语言

将SQL嵌入到高级语言中混合编程,程序中会含有两种不同计算模型的语句:
 (1)SQL语句:描述性的面向集合的语句;负责操纵数据库
 (2)高级语言语句:过程性的面向记录的语句;负责控制程序流程。
工作单元之间的通信方式:
 1. SQL通信区:向主语言传递SQL语句的执行状态信息;主语言能够据此控制程序流程
 2. 主变量:
  (1)主语言向SQL语句提供参数。
  (2)将SQL语句查询数据库的结果交主语言进一步处理。
 3. 游标:解决集合性操作语言与过程性操作语言的不匹配。
一、SQL通信区
  SQLCA: SQL Communication Area。SQLCA是一个数据结构
  SQLCA的用途:
  SQL语句执行后,DBMS反馈给应用程序信息
   (1)描述系统当前工作状态
   (2)描述运行环境
  这些信息将送到SQL通信区SQLCA中,应用程序从SQLCA中取出这些状态信息,据此
  决定接下来执行的语句。
  SQLCA的使用方法:
   用EXEC SQL INCLUDE SQLCA加以定义。SQLCA中有一个存放每次执行SQL语句后返回
   代码的变量SQLCODE。如果SQLCODE等于预定义的量SUCCESS,则表示SQL语句成功,
   否则表示出错;应用程序每执行完一条SQL 语句之后都应该测试一下SQLCODE的值,
   以了解该SQL语句执行情况并做相应处理。
  例:在执行删除语句DELETE后,不同的执行情况,SQLCA中有不同的信息:
        违反数据保护规则,操作拒绝
        没有满足条件的行,一行也没有删除
        成功删除,并有删除的行数
        无条件删除警告信息
        由于各种原因,执行出错
二、主变量
  嵌入式SQL语句中可以使用主语言的程序变量来输入或输出数据。在SQL语句中使用的
  主语言程序变量简称为主变量(Host Variable)。
  主变量的类型:
   输入主变量:由应用程序对其赋值,SQL语句引用。
   输出主变量:由SQL语句赋值或设置状态信息,返回给应用程序。
  一个主变量有可能既是输入主变量又是输出主变量。
  一个主变量可以附带一个指示变量(Indicator Variable)
  指示变量一个整型变量,用来“指示”所指主变量的值或条件。
  指示变量的用途:输入主变量可以利用指示变量赋空值;输出主变量可以利用指示
  变量检测出是否空值,值是否被截断
  在SQL语句中使用主变量和指示变量的方法
   (1) 说明主变量和指示变量
         BEGIN DECLARE SECTION
         ......... 
         ......... (说明主变量和指示变量)
         .........
         END DECLARE SECTION
   
 (2) 使用主变量
    说明之后的主变量可以在SQL语句中任何一个能够使用表达式的地方出现
    为了与数据库对象名(表名、视图名、列名等)区别,SQL语句中的主变
    量名前要加冒号(:)作为标志。
  (3) 使用指示变量
    指示变量前也必须加冒号标志
    必须紧跟在所指主变量之后
    在SQL语句之外(主语言语句中)使用主变量和指示变量的方法:
    可以直接引用,不必加冒号。
三、游标(cursor)
  游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有
  一个名字,用户可以用游标逐一获取记录,并赋给主变量,交由主语言进一步处理。
  为什么要使用游标: 
   SQL语言与主语言具有不同数据处理方式
   SQL语言是面向集合的,一条SQL语句原则上可以产生或处理多条记录
  主语言是面向记录的,一组主变量一次只能存放一条记录,仅使用主变量并不能完全
  满足SQL语句向应用程序输出数据的要求。
  嵌入式SQL引入了游标的概念,用来协调这两种不同的处理方式下面用个程序详解

#include
#include


EXEC SQL BEGIN DECLARE SECTION; /*主变量说明开始*/ 
char deptname[64];
char HSno[64];
char HSname[64]; 
char HSsex[64];
int HSage;
int NEWAGE;
long SQLCODE;
EXEC SQL END DECLARE SECTION;     /*主变量说明结束*/

EXEC SQL INCLUDE sqlca;               /*定义SQL通信区*/

/*************************************************************************/

int main(void)                           /*C语言主程序开始*/
{
int count = 0;
char yn;                              /*变量yn代表yes或no*/
printf("Please choose the department name(CS/MA/IS): "); 
scanf("%s", deptname);                 /*为主变量deptname赋值*/
EXEC SQL CONNECT TO HP-08D6CXF128B/SQL2000 USER sa;         /*连接数据库TEST*/
EXEC SQL DECLARE SX CURSOR FOR   /*定义游标*/
SELECT Sno, Sname, Ssex, Sage   /*SX对应语句的执行结果*/
FROM Student
WHERE SDept = :deptname;
EXEC SQL OPEN SX;        /*打开游标SX便指向查询结果的第一行*/

for ( ; ; )                       /*用循环结构逐条处理结果集中的记录*/

EXEC SQL FETCH SX INTO :HSno, :HSname, :HSsex,:HSage;
      /*推进游标,将当前数据放入主变量*/
if (sqlca->sqlcode != 0)     /* sqlcode != 0,表示操作不成功*/
break;                /*利用SQLCA中的状态信息决定何时退出循环*/
if(count++ == 0)             /*如果是第一行的话,先打出行头*/
printf("/n%-10s %-20s %-10s %-10s/n", "Sno", "Sname", "Ssex", "Sage");
printf("%-10s %-20s %-10s %-10d/n", HSno, HSname, HSsex, HSage); 
     /*打印查询结果*/
printf("UPDATE AGE(y/n)?"); /*询问用户是否要更新该学生的年龄*/
do{                     
    scanf("%c",&yn);
}
while(yn != 'N' && yn != 'n' && yn != 'Y' && yn != 'y');
if (yn == 'y' || yn == 'Y')                 /*如果选择更新操作*/
{
   printf("INPUT NEW AGE:");
   scanf("%d",&NEWAGE);          /*用户输入新年龄到主变量中*/
   EXEC SQL UPDATE Student            /*嵌入式SQL*/
   SET Sage = :NEWAGE
   WHERE CURRENT OF SX ;
}                 /*对当前游标指向的学生年龄进行更新*/
}

EXEC SQL CLOSE SX;           /*关闭游标SX不再和查询结果对应*/
EXEC SQL COMMIT WORK;                           /*提交更新*/
EXEC SQL DISCONNECT TEST;                  /*断开数据库连接*/
}

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment supprimer complètement les langues d'affichage indésirables sur Windows 11 Comment supprimer complètement les langues d'affichage indésirables sur Windows 11 Sep 24, 2023 pm 04:25 PM

Travaillez trop longtemps sur la même configuration ou partagez votre PC avec d’autres. Certains modules linguistiques peuvent être installés, ce qui crée souvent des conflits. Il est donc temps de supprimer les langues d’affichage indésirables dans Windows 11. En parlant de conflits, lorsqu'il existe plusieurs modules linguistiques, appuyer par inadvertance sur Ctrl+Maj modifie la disposition du clavier. Si l’on n’y prend pas garde, cela peut constituer un obstacle à la tâche à accomplir. Alors passons directement à la méthode ! Comment supprimer la langue d’affichage de Windows 11 ? 1. Dans Paramètres, appuyez sur + pour ouvrir l'application Paramètres, accédez à Heure et langue dans le volet de navigation et cliquez sur Langue et région. WindowsJe clique sur les points de suspension à côté de la langue d'affichage que vous souhaitez supprimer et sélectionnez Supprimer dans le menu contextuel. Cliquez sur "

3 façons de changer de langue sur iPhone 3 façons de changer de langue sur iPhone Feb 02, 2024 pm 04:12 PM

Ce n'est un secret pour personne que l'iPhone est l'un des gadgets électroniques les plus conviviaux, et l'une des raisons pour cela est qu'il peut être facilement personnalisé à votre guise. Dans Personnalisation, vous pouvez changer la langue en une langue différente de celle que vous avez sélectionnée lors de la configuration de votre iPhone. Si vous maîtrisez plusieurs langues ou si le paramètre de langue de votre iPhone est incorrect, vous pouvez le modifier comme nous l'expliquons ci-dessous. Comment changer la langue de l'iPhone [3 méthodes] iOS permet aux utilisateurs de changer librement la langue préférée sur l'iPhone pour s'adapter aux différents besoins. Vous pouvez changer la langue d'interaction avec Siri pour faciliter la communication avec l'assistant vocal. Dans le même temps, lorsque vous utilisez le clavier local, vous pouvez facilement basculer entre plusieurs langues pour améliorer l'efficacité de la saisie.

En ajoutant des fonctionnalités audiovisuelles complètes à de grands modèles de langage, DAMO Academy ouvre la source Video-LLaMA En ajoutant des fonctionnalités audiovisuelles complètes à de grands modèles de langage, DAMO Academy ouvre la source Video-LLaMA Jun 09, 2023 pm 09:28 PM

La vidéo joue un rôle de plus en plus important dans la culture actuelle des médias sociaux et Internet. Douyin, Kuaishou, Bilibili, etc. sont devenus des plateformes populaires pour des centaines de millions d'utilisateurs. Les utilisateurs partagent leurs moments de vie, leurs œuvres créatives, leurs moments intéressants et d'autres contenus autour de vidéos pour interagir et communiquer avec les autres. Récemment, de grands modèles de langage ont démontré des capacités impressionnantes. Peut-on équiper les grands modèles d'« yeux » et d'« oreilles » pour qu'ils puissent comprendre les vidéos et interagir avec les utilisateurs ? Partant de ce problème, les chercheurs de la DAMO Academy ont proposé Video-LLaMA, un grand modèle doté de capacités audiovisuelles complètes. Video-LLaMA peut percevoir et comprendre les signaux vidéo et audio dans la vidéo, et peut comprendre les instructions saisies par l'utilisateur pour effectuer une série de tâches complexes basées sur l'audio et la vidéo,

Comment définir la langue de l'ordinateur Win10 sur le chinois ? Comment définir la langue de l'ordinateur Win10 sur le chinois ? Jan 05, 2024 pm 06:51 PM

Parfois, nous installons simplement le système informatique et constatons que le système est en anglais. Dans ce cas, nous devons changer la langue de l'ordinateur en chinois. Alors, comment changer la langue de l'ordinateur en chinois dans le système Win10 ? . Comment changer la langue de l'ordinateur dans Win10 en chinois 1. Allumez l'ordinateur et cliquez sur le bouton Démarrer dans le coin inférieur gauche. 2. Cliquez sur l'option de paramètres à gauche. 3. Sélectionnez « Heure et langue » sur la page qui s'ouvre. 4. Après l'ouverture, cliquez sur « Langue » sur la gauche. 5. Ici, vous pouvez définir la langue de l'ordinateur souhaitée.

Vous pouvez jouer simplement en bougeant votre bouche ! Utilisez l'IA pour changer de personnage et attaquer les ennemis : 'Ayaka, utilisez Kamiri-ryu Frost Destruction' Vous pouvez jouer simplement en bougeant votre bouche ! Utilisez l'IA pour changer de personnage et attaquer les ennemis : 'Ayaka, utilisez Kamiri-ryu Frost Destruction' May 13, 2023 pm 07:52 PM

En ce qui concerne les jeux nationaux devenus populaires dans le monde entier au cours des deux dernières années, Genshin Impact remporte définitivement la palme. Selon le rapport d'enquête sur les revenus des jeux mobiles du premier trimestre de cette année publié en mai, "Genshin Impact" a fermement remporté la première place parmi les jeux mobiles de tirage de cartes avec un avantage absolu de 567 millions de dollars américains. Cela a également annoncé que "Genshin Impact" a été. en ligne en seulement 18 ans. Quelques mois plus tard, les revenus totaux de la seule plateforme mobile dépassaient les 3 milliards de dollars américains (environ 13 milliards de RM). Désormais, la dernière version 2.8 de l'île avant l'ouverture de Xumi est attendue depuis longtemps. Après une longue période de draft, il y a enfin de nouvelles intrigues et zones à jouer. Mais je ne sais pas combien il y a d’« Empereurs du Foie ». Maintenant que l’île a été entièrement explorée, l’herbe a recommencé à pousser. Il y a un total de 182 coffres au trésor + 1 boîte Mora (non incluse). Il n'y a pas lieu de s'inquiéter de la période des herbes longues. La zone Genshin Impact ne manque jamais de travail. Non, pendant les hautes herbes

Explorer les limites des agents : AgentQuest, un cadre de référence modulaire pour mesurer et améliorer de manière globale les performances des grands agents de modèles de langage Explorer les limites des agents : AgentQuest, un cadre de référence modulaire pour mesurer et améliorer de manière globale les performances des grands agents de modèles de langage Apr 11, 2024 pm 08:52 PM

Basées sur l'optimisation continue de grands modèles, les agents LLM, ces puissantes entités algorithmiques ont montré leur potentiel pour résoudre des tâches de raisonnement complexes en plusieurs étapes. Du traitement du langage naturel à l'apprentissage profond, les agents LLM deviennent progressivement le centre d'intérêt de la recherche et de l'industrie. Ils peuvent non seulement comprendre et générer le langage humain, mais également formuler des stratégies, effectuer des tâches dans divers environnements et même utiliser des appels d'API et du codage pour créer. solutions. Dans ce contexte, l'introduction du framework AgentQuest constitue une étape importante. Il fournit non seulement une plate-forme d'analyse comparative modulaire pour l'évaluation et l'avancement des agents LLM, mais fournit également aux chercheurs des outils puissants pour suivre et améliorer les performances de ces agents à un moment donné. niveau plus granulaire

Comment changer la langue d'affichage de la méthode de réglage de la langue du système vivox60pro vivox60pro Comment changer la langue d'affichage de la méthode de réglage de la langue du système vivox60pro vivox60pro Mar 23, 2024 am 09:06 AM

1. Cliquez sur [Gestion du système] dans le menu des paramètres du téléphone. 2. Cliquez sur l'option [Langue]. 3. Sélectionnez la langue du système que vous souhaitez utiliser.

Quel bruit ! ChatGPT comprend-il la langue ? PNAS : étudions d'abord ce qu'est la « compréhension » Quel bruit ! ChatGPT comprend-il la langue ? PNAS : étudions d'abord ce qu'est la « compréhension » Apr 07, 2023 pm 06:21 PM

Se demander si une machine peut y penser, c'est comme demander si un sous-marin peut nager. ——Dijkstra Même avant la sortie de ChatGPT, l'industrie avait déjà flairé les changements apportés par les grands modèles. Le 14 octobre de l'année dernière, les professeurs Melanie Mitchell et David C. Krakauer de l'Institut de Santa Fe ont publié une revue sur arXiv, étudiant de manière approfondie tous les aspects de « la capacité des modèles linguistiques pré-entraînés à grande échelle à comprendre les débats pertinents ». décrit les arguments « pour » et « contre », ainsi que les problèmes clés de la science du renseignement au sens large qui découlent de ces arguments. Lien papier : https://arxiv.o

See all articles