Maison >Les sujets >Access >Comparaison de syntaxe entre l'accès et le serveur SQL

Comparaison de syntaxe entre l'accès et le serveur SQL

王林
王林avant
2021-02-20 13:39:334208parcourir

Comparaison de syntaxe entre l'accès et le serveur SQL

Cet article résume brièvement les différences de syntaxe entre l'accès et le serveur SQL. J'espère qu'il sera utile à tout le monde.

1. Fonctions et solutions différenciées

Les fonctions de la solution ci-dessous sont définies dans la méthode de la classe TAdoConn dans l'unité untDataBase.

Comparaison de syntaxe entre laccès et le serveur SQL

2. Fonctions de base de données et listes de mots clés partiellement identiques entre Access et SQLSERVER

1. 🎜>2. Mots clés

Comparaison de syntaxe entre laccès et le serveur SQL

3. La différence de syntaxe d'instruction entre Access et SqlServer

1. 🎜>Comparaison de syntaxe entre laccès et le serveur SQLL'instruction suivante dans ACCESS

Insert INTO

PubSubJectAccCopys(Copy_id,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index) (Sélectionnez 20 0201 , Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index FROM PubSubJectAcc Where PubSubJectAcc.co_type='03')

中后"(sélectionnez 200201******.co_Type= ' 03')" doit être supprimé pour être exécuté, comme suit :

Insérer INTO

PubSubJectAccCopys(Copy_id,Acc_id,Acc_Pid,Acc_name,acc_short, Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index) Sélectionnez 200201,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index FROM PubSubJectAcc Où PubSubJectAcc.co_type='03'

Dans SQL SERVER Tout est possible

2. Instruction de jointure interne 1

StrSql:='select a.user_id,a.user_opcode,b.copy_name de sysuser une jointure interne (syscopysuser c inner join syscopys b sur c .copy_id=c.copy_id) sur a. user_id=c.user_id où

a.user_opcode=''' +EdtUserOpCode.text+''' Et copy_name='''+Tmpcopyname +''''

doit être remplacé par

StrSql:='select a.user_id,a.user_opcode,b.copy_name de sysuser une jointure interne (syscopysuser c inner join syscopys b sur c.copy_id=d. copy_id) sur a.user_id=c. user_idwhere

a.user_opcode=''' +EdtUserOpCode.text+''' Et copy_name='''+Tmpcopyname +'''';

La condition de recherche de cette ligne de code est faux : C.copy_id=C.Copy_id doit être remplacé par c.copy_id=d.copy_id

Remarque : les deux méthodes d'écriture peuvent être exécutées dans SQL-SERVER, mais c.copy_id=C.copy_id ne peut pas l'être. exécuter dans ACCESS

3. Instruction de jointure interne 2

StrSql:='select copy_year,copy_name,a.copy_id de SysCopys une jointure interne SysCopysUser b sur a. =b.copy_id où b.user_id=' + '''' +TmpPubUserID+ '''';

Cela devrait être

StrSql:='select copy_year, copy_name,a.copy_id from SysCopys une jointure interne SysCopysUser b sur a.copy_id=b.copy_id où a.curcopy_flag=''1'' et b.user_id=' + '''' +TmpPubUserID+ '''';

Remarque : Les deux méthodes d'écriture peuvent être exécutées dans SQL-SERVER, mais la première ne peut pas être exécutée dans ACCESS

4 Instruction Inner Join 3

Peut être exécutée dans le serveur SQL Les instructions suivantes

. 'Sélectionnez la distribution sysoption.opti_id, sysoption.Opti_name, Sysoption.Opti_Code, SysroleOption.Opti_SORT FROM SYSOPTION Inner Join Option sur Sysoption.Opti_id = Sysroleoption.Opti_id et SysroleOption.role_id =: Roleid '

Mais pas dans ACCESS, uniquement

'Sélectionnez sysoption.opti_id,sysoption.opti_name,sysoption.opti_code,sysroleoption.opti_sort distincts De sysoption, jointure interne à sysroleoption ON sysoption.opti_id=sysroleoption.opti_id Où sysroleoption. 🎜>

5. L'instruction de mise à jour

peut être exécutée dans Sql SerVer mais ne peut pas être exécutée dans Access

'Update sysuserrole SET sysuserrole.role_sort = (Sélectionnez sysrole.role_sort FROM sysrole Où sysuserrole .role_id = sysrole.role_id et sysuserrole.user_id='01')'

6. Comparaison de dates

Utilisé dans SQL SERVER

StrSql:='select copy_year,Start_month ,Cur_month,Start_Flag,Start_date,End_date '

+'From SysCopys '

+'where copy_id='''+LoginCopyID+''' '

+ 'et start_date< ;='''+datetostr(LoginDate)+''' '

+'and end_date>='''+datetostr(LoginDate)+''';

Utiliser

StrSql:='select copy_year,Start_month,Cur_month,Start_Flag,Start_date,End_date '

+'From SysCopys '

+'where copy_id='' dans ACCESS '+LoginCopyID+' '' '

+'et start_date

+'et end_date>=#'+datetostr(LoginDate)+ '#'

Référez-vous à la 10ème fonction "GetDateStr" ci-dessus

7. Déclaration d'acquisition de la valeur maximale

StrSql:='insert into sysRoleOption '

+'select '' ' +fidRoleId+''' comme Role_ID,opti_id,'

+'convert(numeric,opti_id)-(convert(numeric,opti_parentid)*100)+'+ MaxOptiSort

+' comme opti_Sort de sysoption où opti_parentid='''

+PCoTypeID(self.trvRoles.Selected.data)^.StrCoTypeID

+''' et opti_bottom=''1'+''' ' ;

changé en

StrSql:='insert into sysRoleOption '

+'select '''+fidRoleId+''' as Role_ID,opti_id,'

+'opti_id-opti_parentid*100+'+ MaxOptiSort

+' comme opti_sort de sysoption où opti_parentid='''

+PCoTypeID(self.trvRoles.Selected.data)^ . StrCoTypeID

+''' et opti_bottom=''1'+''''

Remarque : les deux méthodes d'écriture peuvent s'exécuter dans SQL-SERVER, mais la première fonctionne dans ACCESS. Elle ne peut pas être exécuté dans

Cependant, compte tenu de l'occurrence de valeurs Null et de la polyvalence de l'instruction, vous pouvez utiliser la 07ème fonction "GetNullStr" et la 09ème fonction "GetConvertStr" ci-dessus pour terminer la conversion des chaînes. en nombres, valeurs nulles et Conversion de nombres 0 : reportez-vous au code GetNextNumStr.

1. Comme ne peut pas être omis dans SQL
2 Un seul SQL peut être exécuté à la fois
3 Il n'y a pas de sous-chaîne, de conversion et d'autres fonctions
4. types entiers et caractères en SQL
5. Aucune procédure stockée ni déclencheur
6.! = Remplacer par
7. Ajoutez des signes # des deux côtés de la chaîne de temps
8. Dans l'instruction SQL avec les paramètres, remplacez @ par le signe ?

Recommandations associées : tutoriel d'accès à la base de données

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer