Je prends un cours de base de données et je dois écrire une application de ligne de commande. Le prof demande que nous écrivions une application ESQL (Embed SQL). P>
J'ai un sentiment que ce type de technologie est amorti. P>
Nous devons utiliser Oracle Precompiler pour traduire un code ESQL en C ++. Ce type d'applications a l'air terrible à entretenir. P>
Une application PHP fonctionnerait également bien, mais ils veulent probablement une application de ligne de commande pour effectuer le classement plus rapide (test unitaire avec flux d'entrée). Qu'est-ce que vous pensez, est intégré SQL utilisé dans l'industrie, vaut-t-elle la peine de demander au prof de faire une application Java? Y a-t-il une autre technologie plus appropriée? P>
7 Réponses :
Je n'ai pas vu SQL intégré dans une demande de 10 ans. La dernière fois que j'ai vu c'était dans une application de mainframe Legacy écrit à Cobol. Oui, toujours utilisé chez Electrical Utility Company. P>
La programmation Little C ++ Je fais ces jours-ci n'implique pas SQL. Ces jours-ci la plupart des émissions de la DB relationnelle que je rencontre en sont l'une d'entre elles: p>
Oui, mais non. Je n'ai pas rencontré une seule ligne de SQL intégrée au cours de mes 10 années sur le terrain. Je dirais (et espère) que cette technologie n'existe que dans (certains) systèmes hérités. P>
De nos jours, le développement connexe de la base de données dans l'industrie impliquerait: p>
IMHO, maison faite les solutions em> doivent être éradiquées, mais elles sont plus courantes que vous ne le pensez. Cela devrait certainement avoir à faire avec les étudiants n'ayant expérimenté que des outils obsolètes et inadaptés à l'école ... p>
orm (et couches d'accès aux données) liées problèmes peut être très complexe et je voudrais dire très intéressant d'avoir un coup d'oeil. Surtout si vous êtes étudiant. Je vous recommanderais de développer dans P de EAA de Martin Fowler. P>
en C ++, j'aurais consulté SOCI . P>
+1 pour Martin Fowler. Je devrai écrire l'application ESQL quand même, le professeur est tout simplement obstiné. J'ai commencé à utiliser CakePHP, c'est semblable aux rails.
+1 pour ", une partie de cela devrait certainement faire avec les étudiants n'ayant expérimenté que des outils obsolètes et inadaptés à l'école" i>
Eh bien, nous ne devrions pas oublier que de superbes solutions ont commencé comme des solutions fabriquées à domicile, ou des solutions de trail et d'erreur ...
Sûr. Les grands développeurs créent de nouveaux nouveaux outils tous les jours (pas d'ironie ici). Je n'ai jamais rencontré un à ce jour ;-) Chaque solution faite maison que j'ai dû faire face à un mélange spécial de manque de connaissances (d'outils déjà existants), la paresseuse (personnes qui ne veulent pas apprendre de nouvelles choses) , ego (je l'ai fait moi-même) et une pure incompétence.
Nous devons maintenir sur un ancien système ici (20 ans et plus). P>
ESQL est utilisé massivement ici. La plupart des problèmes que nous avons eues lors de la déplacement du logiciel vers un nouveau système d'exploitation (c'était un HPUX âgé de 15 ans) où avec le code ESQL. P>
Le nouveau logiciel que nous écrivons utilise tous la bibliothèque C ++. Cela nous donne un code plus lisible + notre IDE ne dit pas «syntaxe invalide» tout le temps. etc.. La bibliothèque C ++ est généralement très égale car je me connecte à une base de données à .NET ou Java. P>
Utilisation de la bibliothèque C ++ SHE a une amélioration de la vitesse (si elle est utilisée à bon escient) et beaucoup moins d'erreurs. P>
ESQL est obsolète par mon point de vue. Mais comme nous sommes entrés dans le temps où beaucoup de logiciels écrits consiste à mettre à jour / à mettre à jour ou à maintenir les systèmes existants, il est très pratique d'avoir une connaissance de base des anciennes techniques! P>
+1 sur l'apprentissage des anciennes techniques pour maintenir (ou migrer) logiciel hérité. Les programmeurs deviennent aussi vieux et les plus jeunes doivent venir chercher leurs bagages éventuellement ...
SQL incorporé était l'un des moyens les plus populaires de faire SQL en C pendant les "vieux jours" (C ++ n'a pas encore été inventé). P>
Ces jours-ci surtout nous utiliserons une bibliothèque ORM. Il n'est pas recommandé de faire plus de SQL incorporé car, comme vous le mettez bien, cela dépend d'un pré-processeur propriétaire et rend le code difficile à déboguer, à gérer et à entretenir. Il est également crochets em> à un seul fournisseur de base de données et que votre code sera extrêmement difficile à déplacer vers un autre backend de base de données. Généralement, nous ne le faisons pas dans "vraie vie". P>
Mais comme ce n'est qu'une classe, votre professeur est probablement intéressé à vous enseigner que les concepts SQL et de base de données. SQL incorporé n'est qu'un outil. Vous êtes censé apprendre SQL et bases de données, non incorporé SQL en C ++. P>
Cependant, je pense que vous manquez du point en posant des questions sur PHP et Java. Sans parler que PHP est une langue de script et Java est une autre langue que vous pouvez (potentiellement) écrire un processeur pour SQL incorporé. P>
Donc, votre point sur SQL intégré n'a vraiment rien avec langue em> choix. Cela concerne les compromis et l'équilibre entre (1) système intégré exclusif avec préprocesseur (2) à l'aide d'une bibliothèque ORM ou une bibliothèque d'accès à des données (par exemple ODBC). P>
hors sujet: em> p>
J'ai commencé à utiliser SQL incorporé lorsque j'étais au collège (il y a environ 30 ans!). En fait, j'ai reçu des emplois de programmation hors de l'université et l'utilisait toujours, mais il était évident que c'était sur le chemin du sentier. Jamais vu cela est utilisé depuis 1990 ou plus. P>
Bien que cela soit probablement obsolète (je l'ai également fait ESQL ~ 15-20 ans), il peut toujours servir de bon exemple sur la manière de s'approcher également des choses - même si ce n'est que pour vous de profiter davantage d'ormes. < / p>
Aussi de ma compréhension LINQ in .NET est un peu similaire à l'idée d'intégration de SQL dans la langue hôte - et Linq semble être assez populaire. P>
extraire de cela à un CS plus large, les DSL intégrés semblent être un sujet de recherche actuel, donc l'exemple de l'ESQL comme une version précoce, je ne suis pas trop éloigné du monde d'aujourd'hui. P>
J'utilise ESQL à la date de la date de la base de données Informix 9.x dans le code d'application Legacy C ++ que je travaille dans le cadre de mon travail. P>
Pendant que j'accepte tout le monde qu'il s'agisse d'une ancienne technique, et il y a de meilleures options là-bas, je dirais toujours que c'est une technique très soignée. La bonne partie est que le SQL est incorporé dans le cadre du flux de code C / C ++, de la syntaxe sage et de la logique sage. La petite syntaxe change que ESQL porte est facile à apprendre, et je dis donc que c'est amusant de l'utiliser. P>
Comme Heiko mentionné, Linq est proche de l'idée à Esql. p>
amusant de l'utiliser? sérieusement ?
ESQL est la langue principale étant fortement propagée pour les produits Middleware IBM. Ce n'est pas un langage orienté objet, mais une langue procédurale. Son largement utilisé dans certains endroits pour faire la mappage entre XMLS (alias pour XSLTS). P>
Quel âge a votre professeur? :)
Je l'ai vu de temps en temps dans Telecom, mais rien de retard.