小编Gor*_*son的帖子

如何使用pyodbc从CSV加速批量插入到MS SQL Server

下面是我想要帮助的代码.我不得不运行超过1,300,000行,这意味着插入~300,000行需要40分钟.

我认为批量插入是加速它的路线?或者是因为我通过for data in reader:部分迭代行?

#Opens the prepped csv file
with open (os.path.join(newpath,outfile), 'r') as f:
    #hooks csv reader to file
    reader = csv.reader(f)
    #pulls out the columns (which match the SQL table)
    columns = next(reader)
    #trims any extra spaces
    columns = [x.strip(' ') for x in columns]
    #starts SQL statement
    query = 'bulk insert into SpikeData123({0}) values ({1})'
    #puts column names in SQL query 'query'
    query = query.format(','.join(columns), ','.join('?' * len(columns)))

    print 'Query is: %s' …
Run Code Online (Sandbox Code Playgroud)

python sql-server bulkinsert pyodbc sql-server-2012

26
推荐指数
2
解决办法
5万
查看次数

C#相当于Java 8"方法参考"

我最近有机会调整一些Java代码,并能够利用一些新的Java 8功能.在一个特定情况下,我需要.Name从对象列表中获取(字符串)属性列表.我所做的一个简单例子是:

// sample data: <Thing> objects have a single String property called "Name" 
List<Thing> thingList =
    new ArrayList<>(Arrays.asList(new Thing("Thing1"), new Thing("Thing2")));

// first pass
List<String> nameList = new ArrayList<>();
thingList.forEach(x -> nameList.add(x.getName()));

// refinement 1: use stream, map, and collect
List<String> nameList1 =
    thingList.stream().map(x -> x.getName()).collect(Collectors.toList());

// refinement 2: use "Thing::getName" method reference
List<String> nameList2 =
    thingList.stream().map(Thing::getName).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

我很想知道这些方法将如何转化为C#,我得到了

// sample data: <Thing> objects have a single String property called "Name"
var thingList = new List<Thing> { new …
Run Code Online (Sandbox Code Playgroud)

c# java java-8

24
推荐指数
2
解决办法
4723
查看次数

Access 2013 - 无法打开使用以前版本的应用程序创建的数据库

我有一个超过10年的Access数据库.

我有非常重要的数据,我认为它可以在Access 2007或更早版本中打开.目前我在桌面上安装了Access 2013并使用此版本打开文件导致错误"无法打开使用以前版本的应用程序创建的数据库"

这个问题的解决方案是什么?有没有我可以下载早期版本的MS Access的地方?

ms-access ms-access-2013

23
推荐指数
4
解决办法
10万
查看次数

将参数传递给JDBC PreparedStatement

我正在尝试为我的程序制作验证课程.我已经建立了与MySQL数据库的连接,我已经在表中插入了行.该表由firstName,lastNameuserID领域.现在我想通过构造函数的参数在数据库中选择一个特定的行.

import java.sql.*;
import java.sql.PreparedStatement;
import java.sql.Connection;

public class Validation {

    private PreparedStatement statement;
    private Connection con;
    private String x, y;

    public Validation(String userID) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/test", "root", "");
            statement = con.prepareStatement(
                    "SELECT * from employee WHERE  userID = " + "''" + userID);
            ResultSet rs = statement.executeQuery();
            while (rs.next()) {
                x = rs.getString(1);
                System.out.print(x);
                System.out.print(" ");
                y = rs.getString(2);
                System.out.println(y);
            }
        } catch (Exception ex) {
            System.out.println(ex);
        } …
Run Code Online (Sandbox Code Playgroud)

java mysql jdbc

18
推荐指数
5
解决办法
8万
查看次数

MS Access触发器?

我在MS Access中有两个名为[Insert_Record]和[Delete_Record]的表.两个表都有相同的字段,但是一个表有记录而另一个表没有记录.

问题:我想,每当我从表[Insert_Record]中删除任何记录时,整个记录应自动插入到另一个表中,即:[删除记录].

我怎么能做到这一点?

ms-access triggers

16
推荐指数
2
解决办法
4万
查看次数

将Microsoft Access作为计划任务运行

我正在寻求关于如何安排数据库(.accdb)的自动更新的意见,因为我对我设置的过程不太满意.

目前,它的工作原理如下:

  1. 任务计划程序调用.bat
  2. .bat调用.vbs
  3. .vbs打开数据库并调用宏
  4. 宏调用函数(VBA级别)
  5. 该函数调用更新子例程

我认为有太多的步骤,并且它需要2个与数据库相关并存储在系统上的外部文件(.Bat和.vbs),这增加了程序中断的风险.

显然(但请告诉我,我错了,我怎么能改变它).vbs不能调用子程序而只能调用宏.同样,如果用户期望进入数据库的VB环境,则访问宏不能调用子例程,而只能调用函数.这就是我调用函数(VBA Level)然后调用子例程的原因.

希望你们中的一些人知道如何缩短步骤并最终获得.bat和.vbs

vbscript ms-access batch-file auto-update

16
推荐指数
3
解决办法
5万
查看次数

如何在Windows下获取有意义的网络接口名称而不是带有netifaces的GUID?

我用的是netifaces模块.

import netifaces
print netifaces.interfaces()
Run Code Online (Sandbox Code Playgroud)

但是这显示了以下结果:

 ['{CDC97813-CC28-4260-BA1E-F0CE3081DEC7}',
 '{846EE342-7039-11DE-9D20-806E6F6E6963}',
 '{A51BA5F0-738B-4405-975F-44E67383513F}',
 '{A646FA85-2EC6-4E57-996E-96E1B1C5CD59}',
'{B5DC7787-26DC-4540-8424-A1D5598DC175}']
Run Code Online (Sandbox Code Playgroud)

我希望在Windows中获得"友好"的界面名称,如"Local Area Connection".

我怎么能得到它?

python python-2.7

16
推荐指数
2
解决办法
8183
查看次数

将DataTable批量复制到MySQL(类似于System.Data.SqlClient.SqlBulkCopy)

我正在将我的程序从Microsoft SQL Server迁移到MySQL.一切正常,除了批量复制的一个问题.

在使用MS SQL的解决方案中,代码如下所示:

connection.Open();
SqlBulkCopy bulkCopy = new SqlBulkCopy(connection);
bulkCopy.DestinationTableName = "testTable";
bulkCopy.WriteToServer(rawData);
Run Code Online (Sandbox Code Playgroud)

现在我尝试为MySQL做类似的事情.因为我认为会有不好的性能,所以我不想将DataTable写入CSV文件并从那里开始插入MySqlBulkLoader类.

任何帮助将受到高度赞赏.

c# mysql database

15
推荐指数
3
解决办法
2万
查看次数

pyodbc返回的行不是JSON可序列化的

我试图在Python中使用pyobc库检索表的行.

我能够成功检索表的表和字段.现在我有一个名为"apx_roomtypes"的表,其数据如下,

在此输入图像描述

但是,当我将pyodbc行附加到列表然后尝试将列表转储到JSON时,我得到错误

TypeError:(1,'标准','对于5个成员',123)不是JSON可序列化的

这是python代码:

class execute_query:
    def GET(self,r):
          web.header('Access-Control-Allow-Origin',      '*')
          web.header('Access-Control-Allow-Credentials', 'true')
          cnxn = pyodbc.connect(connection_string)
          data = []
          cursor = cnxn.cursor()
          query = web.input().query
          cursor.execute(query)
          rows = cursor.fetchall()
          for row in rows:
              data.append(row)
          return json.dumps(data)
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?

python sql-server json

15
推荐指数
1
解决办法
8186
查看次数

pyodbc比pypyodbc有任何设计优势吗?

我知道pyodbc是一个较旧的项目,可能更具特色和强大,但它的设计是什么(基于编译的C代码的组件),这会使它优于纯Python实现,如pypyodbc

我做了很多ETL工作,并且正在考虑从Linux/Jython/JDBC方法切换到Windows/Cygwin/Python/ODBC方法.

python odbc etl pyodbc pypyodbc

14
推荐指数
1
解决办法
1万
查看次数