Πρόσβαση ερωτήματος σε αρχείο txt χωρίς ονόματα των στηλών.




Έχω μια απορία πρόσβασης που δημιουργεί κάποια έξοδο, 3 στήλες ονομάζεται π.χ. *Α* , *Β* , και *Γ* .


Θα ήθελα να δημιουργήσετε μια συνάρτηση όπου αυτόματα έξοδος αυτό το ερώτημα σε ένα αρχείο κειμένου χωρίς τις σειρές κεφαλίδα μπορώ. Είμαι σήμερα εξάγει το αρχείο για να υπερέχουν στη συνέχεια άνοιγμα του αρχείου και τη διαγραφή της πρώτης σειράς. Ο χρήστης έχει στη συνέχεια να μετατρέψετε από excel σε κείμενο.
Μπορείτε να χρησιμοποιήσετε τη μέθοδο TransferText:



```
DoCmd.TransferText acExportDelim,,"myQuery", "D:\temp\myquery.txt"

```
Συχνά αυτό επιτυγχάνεται με τη χρήση [«Driven δεδομένων Συνδρομές»](https://msdn.microsoft.com/en-us/library/ms169673.aspx) , αλλά αυτή η λειτουργία είναι διαθέσιμη μόνο σε ορισμένες εκδόσεις του SQL: Enterprise και Business Intelligence, αλλά όχι στο πρότυπο.


Έτσι, υπάρχει μια σειρά από δημιουργικές λύσεις. Αλλά δεν μου αρέσει κάποια από αυτές, και απαιτούν ένα δίκαιο κομμάτι της εργασίας έξω από SSRS.


Οι λύσεις που έχω δει περιλαμβάνουν: Δημιουργία της εγγραφής και στη συνέχεια απενεργοποίηση ή επιτρέπουν την εργασία SQL που στέλνει τη συνδρομή (που προσδιορίζονται από GUID.)


Δημιουργήστε ένα .exe .NET περιτύλιγμα για να χειριστεί την αποστολή του email. Μπορεί να εκτελέσετε το ερώτημα πρώτα να δούμε πόσα επέστρεψε σειρές, και στη συνέχεια, αν χρειαστεί, να δημιουργήσει την έκθεση και να συμπεριληφθεί σε ένα email. <p>μπορείτε να λάβετε ροή εξόδου για τη σύνδεση και να γράψετε τη συμβολοσειρά ερώτησης παραμέτρων σε αυτήν.</p><pre><code>url url = new url("http://yoururl.com"); httpsurlconnection conn = (httpsurlconnection) url.openconnection(); conn.setreadtimeout(10000); conn.setconnecttimeout(15000); conn.setrequestmethod("post"); conn.setdoinput(true); conn.setdooutput(true); list&lt;namevaluepair&gt; params = new arraylist&lt;namevaluepair&gt;(); params.add(new basicnamevaluepair("firstparam", paramvalue1)); params.add(new basicnamevaluepair("secondparam", paramvalue2)); params.add(new basicnamevaluepair("thirdparam", paramvalue3)); outputstream os = conn.getoutputstream(); bufferedwriter writer = new bufferedwriter( new outputstreamwriter(os, "utf-8")); writer.write(getquery(params)); writer.flush(); writer.close(); os.close(); conn.connect(); </code></pre><p>...</p><pre><code>private string getquery(list&lt;namevaluepair&gt; params) throws unsupportedencodingexception { stringbuilder result = new stringbuilder(); boolean first = true; for (namevaluepair pair : params) { if (first) first = false; else result.append("&amp;"); result.append(urlencoder.encode(pair.getname(), "utf-8")); result.append("="); result.append(urlencoder.encode(pair.getvalue(), "utf-8")); } return result.tostring(); } </code></pre> ένα αρχείο tar.xz πρόκειται στην ουσία για ένα συμπιεσμένο αρχείο, αφού το κατεβάσεις προχωράς στην αποσυμπίεση με την εντολή :

tar -xvf filename.tar.xzοι διακόπττες :

-x : extract

-v : verbose (σου δείχνει κατά την εξαγωγή στο τερματικό τα αρχεία που περιλαμβάνει)

-f : filename (δηλώνεις ότι αυ… για να ρωτήσει και να σταματήσει αν πατήσεις κάτι άλλο εκτός από `y’ ή ‘y’

read -p "are you sure? " -n 1 -r

echo # (optional) move to a new line

if [[ ! $reply =~ ^[yy]$ ]]

then

echo -ne "\ncancelled\n"

exit 1

fi

echo -ne "\n"

το μυστικό είναι η κανονική έκφραση (regular experssion) '^[y… Όχι, δεν κάνει καμία διαφορά.


Προσωπικά προτιμώ το στυλ που σας δείχνουν στο Q3, μερικοί από τους συναδέλφους μου προτιμούν το στυλ στο Q1. Δεν ξέρω κανέναν που θα εξετάσει ποτέ ούτε από αυτούς να είναι *λάθος* .


Η Optimiser ερώτημα μετατρέπει το ερώτημα μέσα προς τα έξω σε κάτι εντελώς διαφορετικό, οπότε το κατηγόρημα δεν υπάρχει καν σαν μια απλή σύγκριση πια, όταν έχει κάνει με αυτό. Συνήθως πρόκειται για μια αναζήτηση σε ένα ευρετήριο ή έναν πίνακα, και όπως αυτό μπορεί να γίνει μόνο προς μία κατεύθυνση, πως το κατηγόρημα γράφτηκε δεν κάνει καμία διαφορά.


Έλεγξα (SQL Server 2005) στο σχέδιο εκτέλεσης των δύο ερωτήματα με τα τελούμενα κατηγόρημα με διαφορετική σειρά, και όπως αναμένεται να είναι πανομοιότυπα. **Για την «ορθογραφία λάθος» μέρος (Μήπως εννοείτε)**


* Θα μπορούσατε να κάνετε κάποια `LIKE`ερωτήματα στο db π.χ. `LIKE %j%e%a%n%s%`, αλλά αν θέλετε να το κάνετε καλά, θα πρέπει να χρησιμοποιήσετε μια βιβλιοθήκη αναζήτησης όπως αυτό:


	+ <https://github.com/TomLingham/Laravel-Searchy>
	+ <http://tnt.studio/blog/did-you-mean-functionality-with-laravel-scout>



> 
> Μπορείτε να δημοσιεύσετε το αρχείο ρυθμίσεων στον κατάλογο της εφαρμογής σας και να παρακάμψετε τις ρυθμίσεις, εκτελώντας php τεχνίτη πωλητή: δημοσιεύει για να αντιγράψετε τις ρυθμίσεις στο φάκελο config σας όπως searchy.php
> 
> 
> Μπορείτε να ορίσετε το προεπιλεγμένο πρόγραμμα οδήγησης που θα χρησιμοποιηθεί για τις αναζητήσεις στο αρχείο ρυθμίσεων. Οι επιλογές σας (στην παρούσα φάση) είναι: ασαφή, απλό και Levenshtein.
> 
> 
> Μπορείτε επίσης να παρακάμψετε αυτές τις μεθόδους, χρησιμοποιώντας την ακόλουθη σύνταξη κατά την εκτέλεση μιας αναζήτησης:
> 
> 
> 


Με τον καθορισμό [Levenshtein απόσταση](https://en.wikipedia.org/wiki/Levenshtein_distance) μπορείτε να finetune πόσο μακριά μια λέξη μπορεί να είναι.


* Αν χρειάζεστε καλύτερη απόδοση θα πρέπει να εξετάσει κάτι σαν `solr`ή `elasticsearch`για το έργο αυτό.


<https://wiki.apache.org/solr/SpellCheckComponent>
<https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html>


**Για το τμήμα μετάφρασης**


Απλά θα πρέπει να έχει ένα λεξικό έτοιμο σε βάση δεδομένων ή εντοπισμό των αρχείων σας και εκτελέστε το χαμηλότερο σημείο εισόδου και αυτό. Αναμείνετε υψηλή φορές υπολογιστών τόσο για τη διόρθωση ορθογραφίας και της μετάφρασης στον κώδικά σας. εγώ που είναι ένα ανάλογο πρόβλημα στο arch (δεν έκλεινε το συρτάρι αν το άνοιγα) το διόρθωσα ως εξής:

έκανα αντίγραφο του αρχείου

60-cdrom\_id.rules

πιο συγκεκριμένα

sudo cp /usr/lib/udev/rules.d/60-cdrom\_id.rules /etc/udev/rules.d/

άνοιξε το με τον editor της αρεσκείας σου και βρες τη γραμμή

e… Θα πρέπει να δώσετε περισσότερες πληροφορίες σχετικά με το περιβάλλον ανάπτυξής σας για να πάρετε μια συγκεκριμένη απάντηση.


Για παράδειγμα, με ένα C # έργο στο Visual Studio, μπορείτε να κάνετε δεξί κλικ στα Project-> Ιδιότητες και, στη συνέχεια, να συμπληρώσετε το πεδίο «Εντολή επιχειρήματα γραμμή» στην καρτέλα «Debug». μάλιστα… μετά από μια ώρα ψάξιμο για ό,τι μπορείτε να φανταστείτε (character encoding μήπως δεν έπαιρνε τα "\ " για το κενό, δοκιμές με άλλους editors και χίλια δυο άλλο σχετικά και άσχετα και αφού ποστάρω το ερώτημα εδώ βρήκα τη λύση της μαμακίας μου σε δυο λεπτά.

λέω δεν κάνω copy paste από το te… <p>το <strong>server</strong> (που αποστέλλεται το αίτημα post) πρέπει να περιλαμβάνει την κεφαλίδα <code>access-control-allow-headers</code> (κλπ) <strong>στην απάντησή του</strong>. η τοποθέτησή τους στο αίτημά σας από τον πελάτη δεν έχει καμία επίδραση.</p><p>αυτό οφείλεται στο γεγονός ότι εναπόκειται στον διακομιστή να καθορίσει ότι δέχεται αιτήσεις διασταυρούμενης προέλευσης (και ότι επιτρέπει την κεφαλίδα <code>content-type</code> αίτησης και ούτω καθεξής) - ο πελάτης δεν μπορεί να αποφασίσει για τον εαυτό του ότι ένας δεδομένος διακομιστής πρέπει να επιτρέπει την cors.</p>