TheySaySomethingInterrestingApparently: Perl odbc, et les merveilleux quasi-piège et monde cryptique et à prendre en note.

〈0,1,1,2,3,5,8,13,21,...〉






Iterpipes, Between Bash and Hash-bash

A library for running shell pipelines using shell-like syntax

Enables piping infinite streams through shell pipelines in Python

xhtml-css Bivalidator

Check your markup and style validity

Advanced

Just type or paste an URL in the form above, and click on "check it" to see the magic. If you want to fine tune your validation, click on the "advanced" link. That's it!

Yet Another Comprehensive Content

Like, Young's modulus is a vibrating variation inside a solid... The times it take to respanw to an excess of energy is what molding apparence may look to not-so solid thing's... Like this Blog when adding content, the effor is like slapping it and the time it goes back, centered... we consider being more stable than usual...

lundi 14 avril 2025

Perl odbc, et les merveilleux quasi-piège et monde cryptique et à prendre en note.

 Un quasi piège de penser à une connexion temporisé peut rimé avec vitesse d’exécution. Il faut opter pour une fluidité d'action. Tels Perl est conçu dans l'optique de favoriser un travail administratif et rapide, perl compte énormément pour des rapports d'informations et à base de régime de diffusion. Ce qui en ressort d'une activité de connexion et de conception unitaire à alimentation de une transaction à la fois, perl rapporte ceci:

Une statistique du code DpkgSearchDb en mode insertion à l'unité, vitesse pour 3074 paquets

Type de connexion, temporisé.
  


my $DbHandler = DBI->connect_cached( $DbDsn, $userid, $password, { RaiseError => 1} ) or die $DBI::errstr ;

real	3m29.454s
user	0m3.554s
sys	0m9.643s

Type de connexion, directe.


my $DbHandler = DBI->connect($DbDsn, $userid, $password, { RaiseError => 1}) or die $DBI::errstr ;

real	3m18.110s
user	0m3.359s
sys	0m9.630s
  
 

 Ajouté la variable prédéfinis DBI_PROFILE=4 si vous êtes à un terminal Linux/Unix et vôtre programme perl qui utilise une base de données et complémentes les information de statistique:

       
DBI_PROFILE=4 DSMD5Process=perl DSPkgStatus=install DSDisplay=package DSSearch="^[a-zA-Z0-9]" DSIsRegExp=True DSLimit=0 ./DpkgSearchDb.pl

DBI::Profile: 209.896124s 99.48% (3083 calls) DpkgSearchDb.pl @ 2025-04-11 14:23:13
'STORE' =>
    0.000031s / 5 = 0.000006s avg (first 0.000009s, min 0.000002s, max 0.000009s)
'connect' =>
    0.001289s
'connected' =>
    0.000015s
'disconnect' =>
    0.000344s
'disconnect_all' =>
    0.000006s
'do' =>
    209.894439s / 3074 = 0.068281s avg (first 0.048222s, min 0.021930s, max 0.500559s)

 

En gros c'est plus rapide à l'insertion en mode direct. Nécessitant la présence de la confirmation de l'ajout, le temps de temporisations est ajouté à la transaction. De deux la fluidité est exprimé en utilisant la variable DBI_PROFILE=4 donnant la statistique de rendements des transactions, dans la section do avec le rapport de 0.068281 secondes la transaction.

L'ensemble des transactions se fait en mode AutoCommit et un mécanisme qui permet de d'activer le commit à la demande de l’envoi de la transaction. Le mode AutoCommit=1 ne permet qu'une seule transaction à la fois d'être passé à ce que Oracle et en PLSQL, AutoCommit sert pour un nombre de transaction à appliquer le Commit par défaut.

Alors en ré-analysant le merveilleux monde cryptique, qu'il y a à travers de nombreuses lignes de Awk et de Sed font l'équivoque d'avoir une expressions Sed qui capture le paquet, le processeurs et le statu, ce qui remonte à produire une application Perl beaucoup plus petite et efficiente, mais ne dépassera pas le même temps d’exécution que l'ensemble des méthodes utilisés pour développer DpkgSearch.pl qui démontre l'utilisation simplifié et possible de démontrer dans un temps simple.

Revisitant la section de mon livre d'expression régulière, le PCRE* et les séquences d'expression régulières de la Table 7 du chapitre Perl 5.8 me rappelle à même une expression je peux logé une condition de `match` ou d'un test conditionnel, y logé du code PERL tout étant associé à ce code Perl. Un endroit pour y loger et un $DbHandler->prepare  et utiliser les groupements et appelé le reste de la commande qui logera le restes des variable dans la commande SQL qui provoquera, le insert... N'est absolument pas supporté dans Sqlite et je contre vérifie et rencontre divers exceptions. Alors il faut se contenter d'un mécanisme unitaire.

Table à créer avec Sqlite ou toute structure SQL compatible:
 


CREATE TABLE "PackageInformation" (
	"PkID"	INTEGER NOT NULL UNIQUE,
	"PackageName"	TEXT NOT NULL,
	"PackageStatus"	TEXT NOT NULL,
	"ProcessorType"	TEXT NOT NULL DEFAULT 'None',
	PRIMARY KEY("PkID" AUTOINCREMENT)
)
 

 Ainsi que la table par défaut de SQLite.

       
CREATE TABLE sqlite_sequence(name,seq)
INSERT INTO sqlite_sequence( name, seq) VALUES ( )
       

 

Voici un exemple  d'application visuel permettant de comprendre et accéder à la base de données . Celle-ci à permis d’exécuter le décompte des paquets installé et retiré.


SELECT count(*), PackageStatus FROM PackageInformation GROUP BY PackageStatus ORDER BY PackageStatus DESC LIMIT 0, 49999
       
 

 

 

 

 

L'ensemble des fichiers sont accessible via l'URL de github.com 


 Incluant les tables d'insertion en mode SQL via des commande INSERT.

 

 

 

 

 

*.PCRE:Perl Compatible Regular Expression.